Mercurial > hg > graal-jvmci-8
diff src/share/vm/classfile/stackMapFrame.cpp @ 2472:7144a1d6e0a9
7030388: JCK test failed to reject invalid class check01304m10n.
Summary: Restrict fix for 7020118 to only when checking exception handlers
Reviewed-by: dcubed, dholmes
author | kamg |
---|---|
date | Thu, 31 Mar 2011 08:08:50 -0400 |
parents | c1a6154012c8 |
children | 3449f5e02cc4 |
line wrap: on
line diff
--- a/src/share/vm/classfile/stackMapFrame.cpp Fri Apr 01 15:15:37 2011 -0700 +++ b/src/share/vm/classfile/stackMapFrame.cpp Thu Mar 31 08:08:50 2011 -0400 @@ -208,8 +208,10 @@ return true; } -bool StackMapFrame::is_assignable_to(const StackMapFrame* target, TRAPS) const { - if (_max_locals != target->max_locals() || _stack_size != target->stack_size()) { +bool StackMapFrame::is_assignable_to( + const StackMapFrame* target, bool is_exception_handler, TRAPS) const { + if (_max_locals != target->max_locals() || + _stack_size != target->stack_size()) { return false; } // Only need to compare type elements up to target->locals() or target->stack(). @@ -222,7 +224,7 @@ bool match_flags = (_flags | target->flags()) == target->flags(); return match_locals && match_stack && - (match_flags || has_flag_match_exception(target)); + (match_flags || (is_exception_handler && has_flag_match_exception(target))); } VerificationType StackMapFrame::pop_stack_ex(VerificationType type, TRAPS) {