comparison src/share/vm/oops/instanceKlass.cpp @ 15106:6876a4599b7e

create NodeClass for each Node subclass during class initialization of the latter
author Doug Simon <doug.simon@oracle.com>
date Tue, 15 Apr 2014 13:34:29 +0200
parents 5e6f29f287d6
children bd4c7b669bd8
comparison
equal deleted inserted replaced
15105:4833806209f2 15106:6876a4599b7e
1199 if (h_method() != NULL) { 1199 if (h_method() != NULL) {
1200 JavaCallArguments args; // No arguments 1200 JavaCallArguments args; // No arguments
1201 JavaValue result(T_VOID); 1201 JavaValue result(T_VOID);
1202 JavaCalls::call(&result, h_method, &args, CHECK); // Static call (no args) 1202 JavaCalls::call(&result, h_method, &args, CHECK); // Static call (no args)
1203 } 1203 }
1204
1205 #ifdef GRAAL
1206 if (this_oop->class_loader() == NULL && this_oop->is_subtype_of(SystemDictionary::Node_klass())) {
1207 if (this_oop() != SystemDictionary::Node_klass()) {
1208 // Create the NodeClass for a Node subclass.
1209 TempNewSymbol sig = SymbolTable::new_symbol("(Ljava/lang/Class;)Lcom/oracle/graal/graph/NodeClass;", CHECK);
1210 JavaValue result(T_OBJECT);
1211 JavaCalls::call_static(&result, SystemDictionary::NodeClass_klass(), vmSymbols::get_name(), sig, this_oop->java_mirror(), CHECK);
1212 this_oop->set_graal_node_class((oop) result.get_jobject());
1213 }
1214 }
1215 #endif
1204 } 1216 }
1205 1217
1206 1218
1207 void InstanceKlass::mask_for(methodHandle method, int bci, 1219 void InstanceKlass::mask_for(methodHandle method, int bci,
1208 InterpreterOopMap* entry_for) { 1220 InterpreterOopMap* entry_for) {