2305 Klass* ref_klass = load_class( |
2305 Klass* ref_klass = load_class( |
2306 ref_class_type.name(), CHECK_VERIFY(this)); |
2306 ref_class_type.name(), CHECK_VERIFY(this)); |
2307 Method* m = InstanceKlass::cast(ref_klass)->uncached_lookup_method( |
2307 Method* m = InstanceKlass::cast(ref_klass)->uncached_lookup_method( |
2308 vmSymbols::object_initializer_name(), |
2308 vmSymbols::object_initializer_name(), |
2309 cp->signature_ref_at(bcs->get_index_u2())); |
2309 cp->signature_ref_at(bcs->get_index_u2())); |
|
2310 if (m == NULL) { |
|
2311 verify_error(ErrorContext::bad_code(bci), |
|
2312 "Call to missing <init> method"); |
|
2313 return; |
|
2314 } |
2310 instanceKlassHandle mh(THREAD, m->method_holder()); |
2315 instanceKlassHandle mh(THREAD, m->method_holder()); |
2311 if (m->is_protected() && !mh->is_same_class_package(_klass())) { |
2316 if (m->is_protected() && !mh->is_same_class_package(_klass())) { |
2312 bool assignable = current_type().is_assignable_from( |
2317 bool assignable = current_type().is_assignable_from( |
2313 objectref_type, this, CHECK_VERIFY(this)); |
2318 objectref_type, this, CHECK_VERIFY(this)); |
2314 if (!assignable) { |
2319 if (!assignable) { |