476 } |
476 } |
477 Handle h_loader(THREAD, loader); |
477 Handle h_loader(THREAD, loader); |
478 |
478 |
479 log_debug(modules)("set_bootloader_unnamed_module(): recording unnamed module for boot loader"); |
479 log_debug(modules)("set_bootloader_unnamed_module(): recording unnamed module for boot loader"); |
480 |
480 |
481 // Ensure the boot loader's PackageEntryTable has been created |
481 // Set java.lang.Module for the boot loader's unnamed module |
482 ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK); |
482 ClassLoaderData* boot_loader_data = ClassLoaderData::the_null_class_loader_data(); |
483 |
483 ModuleEntry* unnamed_module = boot_loader_data->unnamed_module(); |
484 // Set java.lang.reflect.Module for the boot loader's unnamed module |
|
485 ModuleEntry* unnamed_module = module_table->unnamed_module(); |
|
486 assert(unnamed_module != NULL, "boot loader's unnamed ModuleEntry not defined"); |
484 assert(unnamed_module != NULL, "boot loader's unnamed ModuleEntry not defined"); |
487 unnamed_module->set_module(ClassLoaderData::the_null_class_loader_data()->add_handle(module_handle)); |
485 unnamed_module->set_module(boot_loader_data->add_handle(module_handle)); |
488 // Store pointer to the ModuleEntry in the unnamed module's java.lang.reflect.Module object. |
486 // Store pointer to the ModuleEntry in the unnamed module's java.lang.reflect.Module object. |
489 java_lang_reflect_Module::set_module_entry(module_handle(), unnamed_module); |
487 java_lang_reflect_Module::set_module_entry(module_handle(), unnamed_module); |
490 } |
488 } |
491 |
489 |
492 void Modules::add_module_exports(jobject from_module, const char* package_name, jobject to_module, TRAPS) { |
490 void Modules::add_module_exports(jobject from_module, const char* package_name, jobject to_module, TRAPS) { |