< prev index next >
src/share/vm/classfile/modules.cpp
Print this page
@@ -87,10 +87,17 @@
// created. So, call register_loader() to make sure the classLoader data gets created.
ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader, CHECK_NULL);
return loader_cld->modules();
}
+static ModuleEntry* get_unnamed_module(Handle h_loader, TRAPS) {
+ // This code can be called during start-up, before the classLoader's classLoader data got
+ // created. So, call register_loader() to make sure the classLoader data gets created.
+ ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader, CHECK_NULL);
+ return loader_cld->unnamed_module();
+}
+
static PackageEntryTable* get_package_entry_table(Handle h_loader, TRAPS) {
// This code can be called during start-up, before the classLoader's classLoader data got
// created. So, call register_loader() to make sure the classLoader data gets created.
ClassLoaderData *loader_cld = SystemDictionary::register_loader(h_loader, CHECK_NULL);
return loader_cld->packages();
@@ -476,15 +483,12 @@
}
Handle h_loader(THREAD, loader);
log_debug(modules)("set_bootloader_unnamed_module(): recording unnamed module for boot loader");
- // Ensure the boot loader's PackageEntryTable has been created
- ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK);
-
- // Set java.lang.reflect.Module for the boot loader's unnamed module
- ModuleEntry* unnamed_module = module_table->unnamed_module();
+ // Set java.lang.Module for the boot loader's unnamed module
+ ModuleEntry* unnamed_module = get_unnamed_module(h_loader, CHECK);
assert(unnamed_module != NULL, "boot loader's unnamed ModuleEntry not defined");
unnamed_module->set_module(ClassLoaderData::the_null_class_loader_data()->add_handle(module_handle));
// Store pointer to the ModuleEntry in the unnamed module's java.lang.reflect.Module object.
java_lang_reflect_Module::set_module_entry(module_handle(), unnamed_module);
}
< prev index next >