hotspot/src/share/vm/classfile/stackMapTable.cpp
changeset 9133 1c8d07466fdb
parent 8921 14bfe81f2a9d
parent 9128 c8ed9bf1b236
child 13476 471200fb94fd
--- a/hotspot/src/share/vm/classfile/stackMapTable.cpp	Sat Apr 09 21:16:12 2011 -0700
+++ b/hotspot/src/share/vm/classfile/stackMapTable.cpp	Tue Apr 12 14:18:53 2011 -0700
@@ -98,10 +98,13 @@
   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