diff 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
line wrap: on
line diff
--- a/src/share/vm/classfile/verifier.cpp	Thu Jun 21 17:07:40 2012 -0700
+++ b/src/share/vm/classfile/verifier.cpp	Tue Jun 26 10:27:11 2012 -0700
@@ -1884,10 +1884,10 @@
   VerificationType type = current_frame->pop_stack(
     VerificationType::reference_check(), CHECK_VERIFY(this));
   if (type == VerificationType::uninitialized_this_type()) {
-    // The method must be an <init> method of either this class, or one of its
-    // superclasses
+    // The method must be an <init> method of this class or its superclass
+    klassOop superk = current_class()->super();
     if (ref_class_type.name() != current_class()->name() &&
-        !name_in_supers(ref_class_type.name(), current_class())) {
+        ref_class_type.name() != superk->klass_part()->name()) {
       verify_error(bci, "Bad <init> method call");
       return;
     }