1.1 --- a/src/share/vm/classfile/stackMapFrame.cpp Fri Apr 01 15:15:37 2011 -0700 1.2 +++ b/src/share/vm/classfile/stackMapFrame.cpp Thu Mar 31 08:08:50 2011 -0400 1.3 @@ -208,8 +208,10 @@ 1.4 return true; 1.5 } 1.6 1.7 -bool StackMapFrame::is_assignable_to(const StackMapFrame* target, TRAPS) const { 1.8 - if (_max_locals != target->max_locals() || _stack_size != target->stack_size()) { 1.9 +bool StackMapFrame::is_assignable_to( 1.10 + const StackMapFrame* target, bool is_exception_handler, TRAPS) const { 1.11 + if (_max_locals != target->max_locals() || 1.12 + _stack_size != target->stack_size()) { 1.13 return false; 1.14 } 1.15 // Only need to compare type elements up to target->locals() or target->stack(). 1.16 @@ -222,7 +224,7 @@ 1.17 bool match_flags = (_flags | target->flags()) == target->flags(); 1.18 1.19 return match_locals && match_stack && 1.20 - (match_flags || has_flag_match_exception(target)); 1.21 + (match_flags || (is_exception_handler && has_flag_match_exception(target))); 1.22 } 1.23 1.24 VerificationType StackMapFrame::pop_stack_ex(VerificationType type, TRAPS) {