< prev index next >

src/share/vm/classfile/packageEntry.cpp

Print this page

        

*** 96,116 **** // Illegal to convert an unqualified exported package to be qualifiedly exported return; } if (m == NULL) { ! // NULL indicates the package is being unqualifiedly exported ! if (has_qual_exports_list()) { ! // Legit to transition a package from being qualifiedly exported ! // to unqualified. Clean up the qualified lists at the next ! // safepoint. ! _exported_pending_delete = _qualified_exports; ! } ! ! // Mark package as unqualifiedly exported set_unqual_exported(); - } else { // Add the exported module add_qexport(m); } } --- 96,108 ---- // Illegal to convert an unqualified exported package to be qualifiedly exported return; } if (m == NULL) { ! // NULL indicates the package is being unqualifiedly exported. Clean up ! // the qualified list at the next safepoint. set_unqual_exported(); } else { // Add the exported module add_qexport(m); } }
*** 158,189 **** } } void PackageEntry::delete_qualified_exports() { assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint"); - if (_exported_pending_delete != NULL) { - // If a transition occurred from qualified to unqualified, the _qualified_exports - // field should have been NULL'ed out. - assert(_qualified_exports == NULL, "Package's exported pending delete, exported list should not be active"); - delete _exported_pending_delete; - } - if (_qualified_exports != NULL) { delete _qualified_exports; } - - _exported_pending_delete = NULL; _qualified_exports = NULL; } PackageEntryTable::PackageEntryTable(int table_size) : Hashtable<Symbol*, mtModule>(table_size, sizeof(PackageEntry)) { } 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) { for (PackageEntry* p = bucket(i); p != NULL;) { --- 150,172 ---- } } void PackageEntry::delete_qualified_exports() { assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint"); if (_qualified_exports != NULL) { delete _qualified_exports; } _qualified_exports = NULL; } PackageEntryTable::PackageEntryTable(int table_size) : Hashtable<Symbol*, mtModule>(table_size, sizeof(PackageEntry)) { } PackageEntryTable::~PackageEntryTable() { ! assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint"); // Walk through all buckets and all entries in each bucket, // freeing each entry. for (int i = 0; i < table_size(); ++i) { for (PackageEntry* p = bucket(i); p != NULL;) {
*** 300,315 **** } // iteration of qualified exports void PackageEntry::package_exports_do(ModuleClosure* const f) { - assert_locked_or_safepoint(Module_lock); assert(f != NULL, "invariant"); - if (has_qual_exports_list()) { int qe_len = _qualified_exports->length(); - for (int i = 0; i < qe_len; ++i) { f->do_module(_qualified_exports->at(i)); } } } --- 283,295 ----
< prev index next >