comparison src/share/vm/classfile/verifier.cpp @ 17583:b5ae226b7516

8037157: Verify <init> call Summary: Check for null method Reviewed-by: coleenp, acorn, mschoene
author hseigel
date Mon, 07 Apr 2014 09:27:31 -0400
parents aff11567504c
children e6b738407432 364b73402247 2373a1f4987c
comparison
equal deleted inserted replaced
17580:0037e964ce48 17583:b5ae226b7516
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) {