mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8011802: NPG: init_dependencies in class loader data graph can cause invalid CLD
Restructure initialization of ClassLoaderData to not add a new instance if init_dependencies fail Reviewed-by: stefank, coleenp
This commit is contained in:
parent
ddbf6ad621
commit
c47ec9b4ca
3 changed files with 30 additions and 24 deletions
|
@ -43,10 +43,9 @@ inline ClassLoaderData *ClassLoaderDataGraph::find_or_create(Handle loader, TRAP
|
|||
assert(loader() != NULL,"Must be a class loader");
|
||||
// Gets the class loader data out of the java/lang/ClassLoader object, if non-null
|
||||
// it's already in the loader_data, so no need to add
|
||||
ClassLoaderData** loader_data_addr = java_lang_ClassLoader::loader_data_addr(loader());
|
||||
ClassLoaderData* loader_data_id = *loader_data_addr;
|
||||
if (loader_data_id) {
|
||||
return loader_data_id;
|
||||
ClassLoaderData* loader_data= java_lang_ClassLoader::loader_data(loader());
|
||||
if (loader_data) {
|
||||
return loader_data;
|
||||
}
|
||||
return ClassLoaderDataGraph::add(loader_data_addr, loader, THREAD);
|
||||
return ClassLoaderDataGraph::add(loader, false, THREAD);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue