mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
Merge
This commit is contained in:
commit
cc14920031
1366 changed files with 37486 additions and 30689 deletions
|
@ -162,8 +162,7 @@ static void define_javabase_module(jobject module, jstring version,
|
|||
}
|
||||
|
||||
|
||||
// Check that the list of packages has no duplicates and that the
|
||||
// packages are syntactically ok.
|
||||
// Check that the packages are syntactically ok.
|
||||
GrowableArray<Symbol*>* pkg_list = new GrowableArray<Symbol*>(num_packages);
|
||||
for (int x = 0; x < num_packages; x++) {
|
||||
const char *package_name = packages[x];
|
||||
|
@ -172,12 +171,7 @@ static void define_javabase_module(jobject module, jstring version,
|
|||
err_msg("Invalid package name: %s for module: " JAVA_BASE_NAME, package_name));
|
||||
}
|
||||
Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK);
|
||||
// append_if_missing() returns FALSE if entry already exists.
|
||||
if (!pkg_list->append_if_missing(pkg_symbol)) {
|
||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
err_msg("Duplicate package name: %s for module " JAVA_BASE_NAME,
|
||||
package_name));
|
||||
}
|
||||
pkg_list->append(pkg_symbol);
|
||||
}
|
||||
|
||||
// Validate java_base's loader is the boot loader.
|
||||
|
@ -186,7 +180,7 @@ static void define_javabase_module(jobject module, jstring version,
|
|||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
"Class loader must be the boot class loader");
|
||||
}
|
||||
Handle h_loader = Handle(THREAD, 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);
|
||||
|
@ -324,7 +318,7 @@ void Modules::define_module(jobject module, jstring version,
|
|||
|
||||
// Only modules defined to either the boot or platform class loader, can define a "java/" package.
|
||||
if (!h_loader.is_null() &&
|
||||
!SystemDictionary::is_platform_class_loader(h_loader) &&
|
||||
!SystemDictionary::is_platform_class_loader(h_loader()) &&
|
||||
(strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0 &&
|
||||
(package_name[JAVAPKG_LEN] == '/' || package_name[JAVAPKG_LEN] == '\0'))) {
|
||||
const char* class_loader_name = SystemDictionary::loader_name(h_loader());
|
||||
|
@ -341,12 +335,7 @@ void Modules::define_module(jobject module, jstring version,
|
|||
}
|
||||
|
||||
Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK);
|
||||
// append_if_missing() returns FALSE if entry already exists.
|
||||
if (!pkg_list->append_if_missing(pkg_symbol)) {
|
||||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
err_msg("Duplicate package name: %s for module %s",
|
||||
package_name, module_name));
|
||||
}
|
||||
pkg_list->append(pkg_symbol);
|
||||
}
|
||||
|
||||
ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK);
|
||||
|
@ -485,7 +474,7 @@ void Modules::set_bootloader_unnamed_module(jobject module, TRAPS) {
|
|||
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
"Class loader must be the boot class loader");
|
||||
}
|
||||
Handle h_loader = Handle(THREAD, loader);
|
||||
Handle h_loader(THREAD, loader);
|
||||
|
||||
log_debug(modules)("set_bootloader_unnamed_module(): recording unnamed module for boot loader");
|
||||
|
||||
|
@ -650,39 +639,6 @@ jobject Modules::get_module(jclass clazz, TRAPS) {
|
|||
return JNIHandles::make_local(THREAD, module);
|
||||
}
|
||||
|
||||
|
||||
jobject Modules::get_module_by_package_name(jobject loader, const char* package_name, TRAPS) {
|
||||
ResourceMark rm(THREAD);
|
||||
assert(ModuleEntryTable::javabase_defined(),
|
||||
"Attempt to call get_module_from_pkg before " JAVA_BASE_NAME " is defined");
|
||||
|
||||
if (package_name == NULL) {
|
||||
THROW_MSG_(vmSymbols::java_lang_NullPointerException(),
|
||||
"package is null", JNI_FALSE);
|
||||
}
|
||||
|
||||
Handle h_loader (THREAD, JNIHandles::resolve(loader));
|
||||
// Check that loader is a subclass of java.lang.ClassLoader.
|
||||
if (loader != NULL && !java_lang_ClassLoader::is_subclass(h_loader->klass())) {
|
||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
"Class loader is not a subclass of java.lang.ClassLoader", JNI_FALSE);
|
||||
}
|
||||
|
||||
if (strlen(package_name) == 0) {
|
||||
// Return the unnamed module
|
||||
ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK_NULL);
|
||||
if (NULL == module_table) return NULL;
|
||||
const ModuleEntry* const unnamed_module = module_table->unnamed_module();
|
||||
return JNIHandles::make_local(THREAD, JNIHandles::resolve(unnamed_module->module()));
|
||||
|
||||
} else {
|
||||
TempNewSymbol package_sym = SymbolTable::new_symbol(package_name, CHECK_NULL);
|
||||
return get_module(package_sym, h_loader, CHECK_NULL);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
jobject Modules::get_named_module(Handle h_loader, const char* package_name, TRAPS) {
|
||||
assert(ModuleEntryTable::javabase_defined(),
|
||||
"Attempt to call get_named_module before " JAVA_BASE_NAME " is defined");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue