comparison src/share/vm/classfile/verifier.cpp @ 6159:9d5f20961bc5 jdk8-b45

Merge
author lana
date Tue, 26 Jun 2012 10:27:11 -0700
parents e17b61ba7bb3 d558e01a72c0
children f0b82641fb7e
comparison
equal deleted inserted replaced
6149:0976e71907b9 6159:9d5f20961bc5
1882 constantPoolHandle cp, TRAPS) { 1882 constantPoolHandle cp, TRAPS) {
1883 u2 bci = bcs->bci(); 1883 u2 bci = bcs->bci();
1884 VerificationType type = current_frame->pop_stack( 1884 VerificationType type = current_frame->pop_stack(
1885 VerificationType::reference_check(), CHECK_VERIFY(this)); 1885 VerificationType::reference_check(), CHECK_VERIFY(this));
1886 if (type == VerificationType::uninitialized_this_type()) { 1886 if (type == VerificationType::uninitialized_this_type()) {
1887 // The method must be an <init> method of either this class, or one of its 1887 // The method must be an <init> method of this class or its superclass
1888 // superclasses 1888 klassOop superk = current_class()->super();
1889 if (ref_class_type.name() != current_class()->name() && 1889 if (ref_class_type.name() != current_class()->name() &&
1890 !name_in_supers(ref_class_type.name(), current_class())) { 1890 ref_class_type.name() != superk->klass_part()->name()) {
1891 verify_error(bci, "Bad <init> method call"); 1891 verify_error(bci, "Bad <init> method call");
1892 return; 1892 return;
1893 } 1893 }
1894 current_frame->initialize_object(type, current_type()); 1894 current_frame->initialize_object(type, current_type());
1895 *this_uninit = true; 1895 *this_uninit = true;