8240205: Avoid PackageEntry lookup when loading shared classes

Do the PackageEntry lookup at one place and then pass it along to the subsequently called functions which need it.

Reviewed-by: redestad, lfoltan
This commit is contained in:
Calvin Cheung 2020-04-03 14:26:42 -07:00
parent 965404dd98
commit 512644de06
10 changed files with 55 additions and 38 deletions

View file

@ -511,7 +511,7 @@ public:
ModuleEntry* module() const;
bool in_unnamed_package() const { return (_package_entry == NULL); }
void set_package(PackageEntry* p) { _package_entry = p; }
void set_package(ClassLoaderData* loader_data, TRAPS);
void set_package(ClassLoaderData* loader_data, PackageEntry* pkg_entry, TRAPS);
bool is_same_class_package(const Klass* class2) const;
bool is_same_class_package(oop other_class_loader, const Symbol* other_class_name) const;
@ -1327,7 +1327,7 @@ public:
// CDS support - remove and restore oops from metadata. Oops are not shared.
virtual void remove_unshareable_info();
virtual void remove_java_mirror();
virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, PackageEntry* pkg_entry, TRAPS);
// jvm support
jint compute_modifier_flags(TRAPS) const;