# HG changeset patch # User Doug Simon # Date 1397639796 -7200 # Node ID bd4c7b669bd8ec0b8d8430b494d15eb829071bb2 # Parent f4c5498fdf4c39985a4a8e7e1cb7828bdfec605c initialize NodeClass for Node classes that are not on the boot class path diff -r f4c5498fdf4c -r bd4c7b669bd8 src/share/vm/oops/instanceKlass.cpp --- 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