< prev index next >

src/hotspot/share/classfile/modules.cpp

Print this page

        

*** 82,112 **** return NULL; } return java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(version)); } ! static ModuleEntryTable* get_module_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->modules(); } ! 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(); } static ModuleEntry* get_module_entry(jobject module, TRAPS) { ! Handle module_h(THREAD, JNIHandles::resolve(module)); ! if (!java_lang_Module::is_instance(module_h())) { THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(), "module is not an instance of type java.lang.Module"); } ! return java_lang_Module::module_entry(module_h(), CHECK_NULL); } static PackageEntry* get_package_entry(ModuleEntry* module_entry, const char* package_name, TRAPS) { ResourceMark rm(THREAD); if (package_name == NULL) return NULL; --- 82,112 ---- return NULL; } return java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(version)); } ! static ModuleEntryTable* get_module_entry_table(Handle h_loader) { // 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); return loader_cld->modules(); } ! static PackageEntryTable* get_package_entry_table(Handle h_loader) { // 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); return loader_cld->packages(); } static ModuleEntry* get_module_entry(jobject module, TRAPS) { ! oop m = JNIHandles::resolve(module); ! if (!java_lang_Module::is_instance(m)) { THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(), "module is not an instance of type java.lang.Module"); } ! return java_lang_Module::module_entry(m); } static PackageEntry* get_package_entry(ModuleEntry* module_entry, const char* package_name, TRAPS) { ResourceMark rm(THREAD); if (package_name == NULL) return NULL;
*** 121,131 **** TRAPS) { if (package != NULL) { ResourceMark rm(THREAD); if (Modules::verify_package_name(package->as_C_string())) { PackageEntryTable* const package_entry_table = ! get_package_entry_table(h_loader, CHECK_NULL); assert(package_entry_table != NULL, "Unexpected null package entry table"); return package_entry_table->lookup_only(package); } } return NULL; --- 121,131 ---- TRAPS) { if (package != NULL) { ResourceMark rm(THREAD); if (Modules::verify_package_name(package->as_C_string())) { PackageEntryTable* const package_entry_table = ! get_package_entry_table(h_loader); assert(package_entry_table != NULL, "Unexpected null package entry table"); return package_entry_table->lookup_only(package); } } return NULL;
*** 183,193 **** "Class loader must be the boot class loader"); } Handle h_loader(THREAD, loader); // Ensure the boot loader's PackageEntryTable has been created ! PackageEntryTable* package_table = get_package_entry_table(h_loader, CHECK); assert(pkg_list->length() == 0 || package_table != NULL, "Bad package_table"); // Ensure java.base's ModuleEntry has been created assert(ModuleEntryTable::javabase_moduleEntry() != NULL, "No ModuleEntry for " JAVA_BASE_NAME); --- 183,193 ---- "Class loader must be the boot class loader"); } Handle h_loader(THREAD, loader); // Ensure the boot loader's PackageEntryTable has been created ! PackageEntryTable* package_table = get_package_entry_table(h_loader); assert(pkg_list->length() == 0 || package_table != NULL, "Bad package_table"); // Ensure java.base's ModuleEntry has been created assert(ModuleEntryTable::javabase_moduleEntry() != NULL, "No ModuleEntry for " JAVA_BASE_NAME);
*** 343,353 **** Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); pkg_list->append(pkg_symbol); } ! ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK); assert(module_table != NULL, "module entry table shouldn't be null"); // Create symbol* entry for module name. TempNewSymbol module_symbol = SymbolTable::new_symbol(module_name, CHECK); --- 343,353 ---- Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); pkg_list->append(pkg_symbol); } ! ModuleEntryTable* module_table = get_module_entry_table(h_loader); assert(module_table != NULL, "module entry table shouldn't be null"); // Create symbol* entry for module name. TempNewSymbol module_symbol = SymbolTable::new_symbol(module_name, CHECK);
*** 379,389 **** PackageEntry* existing_pkg = NULL; { MutexLocker ml(Module_lock, THREAD); if (num_packages > 0) { ! package_table = get_package_entry_table(h_loader, CHECK); assert(package_table != NULL, "Missing package_table"); // Check that none of the packages exist in the class loader's package table. for (int x = 0; x < pkg_list->length(); x++) { existing_pkg = package_table->lookup_only(pkg_list->at(x)); --- 379,389 ---- PackageEntry* existing_pkg = NULL; { MutexLocker ml(Module_lock, THREAD); if (num_packages > 0) { ! package_table = get_package_entry_table(h_loader); assert(package_table != NULL, "Missing package_table"); // Check that none of the packages exist in the class loader's package table. for (int x = 0; x < pkg_list->length(); x++) { existing_pkg = package_table->lookup_only(pkg_list->at(x));
< prev index next >