< prev index next >

src/share/vm/classfile/packageEntry.cpp

Print this page




 276     if (p->name()->fast_compare(name) == 0) {
 277       return p;
 278     }
 279   }
 280   return NULL;
 281 }
 282 
 283 // Called when a define module for java.base is being processed.
 284 // Verify the packages loaded thus far are in java.base's package list.
 285 void PackageEntryTable::verify_javabase_packages(GrowableArray<Symbol*> *pkg_list) {
 286   for (int i = 0; i < table_size(); i++) {
 287     for (PackageEntry* entry = bucket(i);
 288                        entry != NULL;
 289                        entry = entry->next()) {
 290       ModuleEntry* m = entry->module();
 291       Symbol* module_name = (m == NULL ? NULL : m->name());
 292       if (module_name != NULL &&
 293           (module_name->fast_compare(vmSymbols::java_base()) == 0) &&
 294           !pkg_list->contains(entry->name())) {
 295         ResourceMark rm;
 296         vm_exit_during_initialization("A non-java.base package was loaded prior to module system initialization", entry->name()->as_C_string());
 297       }
 298     }
 299   }
 300 
 301 }
 302 
 303 // iteration of qualified exports
 304 void PackageEntry::package_exports_do(ModuleClosure* const f) {
 305   assert_locked_or_safepoint(Module_lock);
 306   assert(f != NULL, "invariant");
 307 
 308   if (has_qual_exports_list()) {
 309     int qe_len = _qualified_exports->length();
 310 
 311     for (int i = 0; i < qe_len; ++i) {
 312       f->do_module(_qualified_exports->at(i));
 313     }
 314   }
 315 }
 316 




 276     if (p->name()->fast_compare(name) == 0) {
 277       return p;
 278     }
 279   }
 280   return NULL;
 281 }
 282 
 283 // Called when a define module for java.base is being processed.
 284 // Verify the packages loaded thus far are in java.base's package list.
 285 void PackageEntryTable::verify_javabase_packages(GrowableArray<Symbol*> *pkg_list) {
 286   for (int i = 0; i < table_size(); i++) {
 287     for (PackageEntry* entry = bucket(i);
 288                        entry != NULL;
 289                        entry = entry->next()) {
 290       ModuleEntry* m = entry->module();
 291       Symbol* module_name = (m == NULL ? NULL : m->name());
 292       if (module_name != NULL &&
 293           (module_name->fast_compare(vmSymbols::java_base()) == 0) &&
 294           !pkg_list->contains(entry->name())) {
 295         ResourceMark rm;
 296         vm_exit_during_initialization("A non-" JAVA_BASE_NAME " package was loaded prior to module system initialization", entry->name()->as_C_string());
 297       }
 298     }
 299   }
 300 
 301 }
 302 
 303 // iteration of qualified exports
 304 void PackageEntry::package_exports_do(ModuleClosure* const f) {
 305   assert_locked_or_safepoint(Module_lock);
 306   assert(f != NULL, "invariant");
 307 
 308   if (has_qual_exports_list()) {
 309     int qe_len = _qualified_exports->length();
 310 
 311     for (int i = 0; i < qe_len; ++i) {
 312       f->do_module(_qualified_exports->at(i));
 313     }
 314   }
 315 }
 316 


< prev index next >