This commit is contained in:
Coleen Phillimore 2011-04-12 14:18:53 -07:00
commit 3c4d3002f2
30 changed files with 168 additions and 120 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