equal
deleted
inserted
replaced
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"); |