src/share/vm/classfile/stackMapTable.cpp

changeset 2754
7144a1d6e0a9
parent 2497
3582bf76420e
child 2759
3449f5e02cc4
     1.1 --- a/src/share/vm/classfile/stackMapTable.cpp	Fri Apr 01 15:15:37 2011 -0700
     1.2 +++ b/src/share/vm/classfile/stackMapTable.cpp	Thu Mar 31 08:08:50 2011 -0400
     1.3 @@ -98,10 +98,13 @@
     1.4    bool result = true;
     1.5    StackMapFrame *stackmap_frame = _frame_array[frame_index];
     1.6    if (match) {
     1.7 +    // when checking handler target, match == true && update == false
     1.8 +    bool is_exception_handler = !update;
     1.9      // Has direct control flow from last instruction, need to match the two
    1.10      // frames.
    1.11      result = frame->is_assignable_to(
    1.12 -      stackmap_frame, CHECK_VERIFY_(frame->verifier(), false));
    1.13 +      stackmap_frame, is_exception_handler,
    1.14 +      CHECK_VERIFY_(frame->verifier(), false));
    1.15    }
    1.16    if (update) {
    1.17      // Use the frame in stackmap table as current frame

mercurial