hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 8653 8797d788a4f1
parent 8297 f05d10c1c4b8
child 8676 9098d4e927e1
equal deleted inserted replaced
8652:209b2ce94ce5 8653:8797d788a4f1
   733 }
   733 }
   734 
   734 
   735 static int call_class_initializer_impl_counter = 0;   // for debugging
   735 static int call_class_initializer_impl_counter = 0;   // for debugging
   736 
   736 
   737 methodOop instanceKlass::class_initializer() {
   737 methodOop instanceKlass::class_initializer() {
   738   return find_method(vmSymbols::class_initializer_name(), vmSymbols::void_method_signature());
   738   methodOop clinit = find_method(
       
   739       vmSymbols::class_initializer_name(), vmSymbols::void_method_signature());
       
   740   if (clinit != NULL && clinit->has_valid_initializer_flags()) {
       
   741     return clinit;
       
   742   }
       
   743   return NULL;
   739 }
   744 }
   740 
   745 
   741 void instanceKlass::call_class_initializer_impl(instanceKlassHandle this_oop, TRAPS) {
   746 void instanceKlass::call_class_initializer_impl(instanceKlassHandle this_oop, TRAPS) {
   742   methodHandle h_method(THREAD, this_oop->class_initializer());
   747   methodHandle h_method(THREAD, this_oop->class_initializer());
   743   assert(!this_oop->is_initialized(), "we cannot initialize twice");
   748   assert(!this_oop->is_initialized(), "we cannot initialize twice");