Mercurial > hg > truffle
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; |