< prev index next >

src/hotspot/share/oops/instanceKlass.cpp

Print this page

        

*** 2823,2833 **** // not needed for shared class since CDS does not archive prohibited classes. if (!is_shared()) { check_prohibited_package(name(), loader_data, CHECK); } ! TempNewSymbol pkg_name = pkg_entry != NULL ? pkg_entry->name() : ClassLoader::package_from_class_name(name()); if (pkg_name != NULL && loader_data != NULL) { // Find in class loader's package entry table. _package_entry = pkg_entry != NULL ? pkg_entry : loader_data->packages()->lookup_only(pkg_name); --- 2823,2843 ---- // not needed for shared class since CDS does not archive prohibited classes. if (!is_shared()) { check_prohibited_package(name(), loader_data, CHECK); } ! // ClassLoader::package_from_class_name has already incremented the refcount of the symbol ! // it returns, so we need to decrement it when the current function exits. ! TempNewSymbol from_class_name = ! (pkg_entry != NULL) ? NULL : ClassLoader::package_from_class_name(name()); ! ! Symbol* pkg_name; ! if (pkg_entry != NULL) { ! pkg_name = pkg_entry->name(); ! } else { ! pkg_name = from_class_name; ! } if (pkg_name != NULL && loader_data != NULL) { // Find in class loader's package entry table. _package_entry = pkg_entry != NULL ? pkg_entry : loader_data->packages()->lookup_only(pkg_name);
< prev index next >