diff 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
line wrap: on
line diff
--- a/src/share/vm/classfile/stackMapTable.cpp	Sat Apr 09 21:16:12 2011 -0700
+++ b/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