comparison src/share/vm/classfile/stackMapTable.cpp @ 2477:3449f5e02cc4

Merge
author coleenp
date Tue, 12 Apr 2011 14:18:53 -0700
parents 1d1603768966 7144a1d6e0a9
children 4ee06e614636
comparison
equal deleted inserted replaced
2468:6c97c830fb6f 2477:3449f5e02cc4
96 } 96 }
97 97
98 bool result = true; 98 bool result = true;
99 StackMapFrame *stackmap_frame = _frame_array[frame_index]; 99 StackMapFrame *stackmap_frame = _frame_array[frame_index];
100 if (match) { 100 if (match) {
101 // when checking handler target, match == true && update == false
102 bool is_exception_handler = !update;
101 // Has direct control flow from last instruction, need to match the two 103 // Has direct control flow from last instruction, need to match the two
102 // frames. 104 // frames.
103 result = frame->is_assignable_to( 105 result = frame->is_assignable_to(
104 stackmap_frame, CHECK_VERIFY_(frame->verifier(), false)); 106 stackmap_frame, is_exception_handler,
107 CHECK_VERIFY_(frame->verifier(), false));
105 } 108 }
106 if (update) { 109 if (update) {
107 // Use the frame in stackmap table as current frame 110 // Use the frame in stackmap table as current frame
108 int lsize = stackmap_frame->locals_size(); 111 int lsize = stackmap_frame->locals_size();
109 int ssize = stackmap_frame->stack_size(); 112 int ssize = stackmap_frame->stack_size();