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
|