diff 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
line wrap: on
line diff
--- a/src/share/vm/classfile/classLoaderData.inline.hpp	Mon Apr 22 22:00:03 2013 -0700
+++ b/src/share/vm/classfile/classLoaderData.inline.hpp	Tue Apr 23 08:39:55 2013 +0200
@@ -43,10 +43,9 @@
   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);
 }