diff graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java @ 19585:d28482893f28

Fix construction of unwind BEFORE_EXCEPTION_BCI frame states when inlining in the graph builder.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 24 Feb 2015 20:23:42 +0100
parents 0362d64c0cd4
children 490f2c54c28a
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java	Tue Feb 24 20:11:04 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java	Tue Feb 24 20:23:42 2015 +0100
@@ -201,6 +201,10 @@
         FrameState outerFrameState = null;
         if (outerFrameStateSupplier != null) {
             outerFrameState = outerFrameStateSupplier.get();
+            if (bci == BytecodeFrame.AFTER_EXCEPTION_BCI) {
+                FrameState newFrameState = outerFrameState.duplicateModified(outerFrameState.bci, true, Kind.Void, this.peek(0));
+                return newFrameState;
+            }
         }
         return graph.add(new FrameState(outerFrameState, method, bci, locals, stack, stackSize, lockedObjects, Arrays.asList(monitorIds), rethrowException, false));
     }