mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8163406: The fixup_module_list must be protected by Module_lock when inserting new entries
In java_lang_Class::create_mirror, restructure the check for adding a class to the fixup_module_list, guarded by Module_lock. Reviewed-by: acorn, coleenp, dholmes, zgu
This commit is contained in:
parent
eb52950704
commit
368585d0db
10 changed files with 75 additions and 45 deletions
|
@ -206,7 +206,7 @@ static void define_javabase_module(jobject module, jstring version,
|
|||
assert(pkg_list->length() == 0 || package_table != NULL, "Bad package_table");
|
||||
|
||||
// Ensure java.base's ModuleEntry has been created
|
||||
assert(ModuleEntryTable::javabase_module() != NULL, "No ModuleEntry for java.base");
|
||||
assert(ModuleEntryTable::javabase_moduleEntry() != NULL, "No ModuleEntry for java.base");
|
||||
|
||||
bool duplicate_javabase = false;
|
||||
{
|
||||
|
@ -226,7 +226,7 @@ static void define_javabase_module(jobject module, jstring version,
|
|||
for (int x = 0; x < pkg_list->length(); x++) {
|
||||
// Some of java.base's packages were added early in bootstrapping, ignore duplicates.
|
||||
if (package_table->lookup_only(pkg_list->at(x)) == NULL) {
|
||||
pkg = package_table->locked_create_entry_or_null(pkg_list->at(x), ModuleEntryTable::javabase_module());
|
||||
pkg = package_table->locked_create_entry_or_null(pkg_list->at(x), ModuleEntryTable::javabase_moduleEntry());
|
||||
assert(pkg != NULL, "Unable to create a java.base package entry");
|
||||
}
|
||||
// Unable to have a GrowableArray of TempNewSymbol. Must decrement the refcount of
|
||||
|
@ -255,9 +255,6 @@ static void define_javabase_module(jobject module, jstring version,
|
|||
log_trace(modules)("define_javabase_module(): creation of package %s for module java.base",
|
||||
(pkg_list->at(x))->as_C_string());
|
||||
}
|
||||
|
||||
// Patch any previously loaded classes' module field with java.base's jlr.Module.
|
||||
ModuleEntryTable::patch_javabase_entries(module_handle);
|
||||
}
|
||||
|
||||
void Modules::define_module(jobject module, jstring version,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue