8179235: PackageEntryTables should be created eagerly

Create the PackageEntryTables in the constructor for ClassLoaderData.

Reviewed-by: dholmes, sspitsyn
This commit is contained in:
Harold Seigel 2017-04-27 10:08:02 -04:00
parent 0edc20faf9
commit 5252655a4a
3 changed files with 12 additions and 30 deletions

View file

@ -174,8 +174,6 @@ PackageEntryTable::PackageEntryTable(int table_size)
}
PackageEntryTable::~PackageEntryTable() {
assert_locked_or_safepoint(Module_lock);
// Walk through all buckets and all entries in each bucket,
// freeing each entry.
for (int i = 0; i < table_size(); ++i) {
@ -271,6 +269,7 @@ PackageEntry* PackageEntryTable::lookup_only(Symbol* name) {
// Called when a define module for java.base is being processed.
// Verify the packages loaded thus far are in java.base's package list.
void PackageEntryTable::verify_javabase_packages(GrowableArray<Symbol*> *pkg_list) {
assert_lock_strong(Module_lock);
for (int i = 0; i < table_size(); i++) {
for (PackageEntry* entry = bucket(i);
entry != NULL;