changeset 15126:bd4c7b669bd8

initialize NodeClass for Node classes that are not on the boot class path
author Doug Simon <doug.simon@oracle.com>
date Wed, 16 Apr 2014 11:16:36 +0200
parents f4c5498fdf4c
children dc774fe9d0e0 844cfee4041a
files src/share/vm/oops/instanceKlass.cpp
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/oops/instanceKlass.cpp	Wed Apr 16 11:16:00 2014 +0200
+++ b/src/share/vm/oops/instanceKlass.cpp	Wed Apr 16 11:16:36 2014 +0200
@@ -1203,13 +1203,16 @@
   }
 
 #ifdef GRAAL
-  if (this_oop->class_loader() == NULL && this_oop->is_subtype_of(SystemDictionary::Node_klass())) {
+  if (this_oop->is_subtype_of(SystemDictionary::Node_klass())) {
     if (this_oop() != SystemDictionary::Node_klass()) {
       // Create the NodeClass for a Node subclass.
       TempNewSymbol sig = SymbolTable::new_symbol("(Ljava/lang/Class;)Lcom/oracle/graal/graph/NodeClass;", CHECK);
       JavaValue result(T_OBJECT);
       JavaCalls::call_static(&result, SystemDictionary::NodeClass_klass(), vmSymbols::get_name(), sig, this_oop->java_mirror(), CHECK);
       this_oop->set_graal_node_class((oop) result.get_jobject());
+    } else {
+      // A NodeClass cannot be created for Node due to checks in
+      // NodeClass.FieldScanner.scanField()
     }
   }
 #endif