< 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 >