7030388: JCK test failed to reject invalid class check01304m10n

Restrict fix for 7020118 to only when checking exception handlers

Reviewed-by: dcubed, dholmes
This commit is contained in:
Keith McGuigan 2011-03-31 08:08:50 -04:00
parent cf3120dddc
commit 727612ede9
3 changed files with 11 additions and 5 deletions

View file

@ -98,10 +98,13 @@ bool StackMapTable::match_stackmap(
bool result = true;
StackMapFrame *stackmap_frame = _frame_array[frame_index];
if (match) {
// when checking handler target, match == true && update == false
bool is_exception_handler = !update;
// Has direct control flow from last instruction, need to match the two
// frames.
result = frame->is_assignable_to(
stackmap_frame, CHECK_VERIFY_(frame->verifier(), false));
stackmap_frame, is_exception_handler,
CHECK_VERIFY_(frame->verifier(), false));
}
if (update) {
// Use the frame in stackmap table as current frame