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 } |