Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/classLoaderData.inline.hpp @ 10181:1cb4795305b9
8011802: NPG: init_dependencies in class loader data graph can cause invalid CLD
Summary: Restructure initialization of ClassLoaderData to not add a new instance if init_dependencies fail
Reviewed-by: stefank, coleenp
author | mgerdin |
---|---|
date | Tue, 23 Apr 2013 08:39:55 +0200 |
parents | 1f9994892f89 |
children | de6a9e811145 |
comparison
equal
deleted
inserted
replaced
10180:ebded0261dfc | 10181:1cb4795305b9 |
---|---|
41 | 41 |
42 inline ClassLoaderData *ClassLoaderDataGraph::find_or_create(Handle loader, TRAPS) { | 42 inline ClassLoaderData *ClassLoaderDataGraph::find_or_create(Handle loader, TRAPS) { |
43 assert(loader() != NULL,"Must be a class loader"); | 43 assert(loader() != NULL,"Must be a class loader"); |
44 // Gets the class loader data out of the java/lang/ClassLoader object, if non-null | 44 // Gets the class loader data out of the java/lang/ClassLoader object, if non-null |
45 // it's already in the loader_data, so no need to add | 45 // it's already in the loader_data, so no need to add |
46 ClassLoaderData** loader_data_addr = java_lang_ClassLoader::loader_data_addr(loader()); | 46 ClassLoaderData* loader_data= java_lang_ClassLoader::loader_data(loader()); |
47 ClassLoaderData* loader_data_id = *loader_data_addr; | 47 if (loader_data) { |
48 if (loader_data_id) { | 48 return loader_data; |
49 return loader_data_id; | |
50 } | 49 } |
51 return ClassLoaderDataGraph::add(loader_data_addr, loader, THREAD); | 50 return ClassLoaderDataGraph::add(loader, false, THREAD); |
52 } | 51 } |