Mercurial > hg > truffle
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(); |