changeset 13221:d5c6d9beebe3

graph builder: fixed wrong liveness of locals in ExceptionObject?s frame state
author Erik Eckstein <erik.eckstein@oracle.com>
date Tue, 03 Dec 2013 16:05:51 +0100
parents 2b43fcc68add
children de8f74d49690
files graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Mon Dec 02 18:06:00 2013 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Tue Dec 03 16:05:51 2013 +0100
@@ -1218,14 +1218,14 @@
             frameState.pushReturn(resultType, append(invoke));
             return invoke;
         } else {
+            assert bci() == currentBlock.endBci;
+            frameState.clearNonLiveLocals(currentBlock.localsLiveOut);
+
             DispatchBeginNode exceptionEdge = handleException(null, bci());
             InvokeWithExceptionNode invoke = append(new InvokeWithExceptionNode(callTarget, exceptionEdge, bci()));
             frameState.pushReturn(resultType, invoke);
             Block nextBlock = currentBlock.successors.get(0);
 
-            assert bci() == currentBlock.endBci;
-            frameState.clearNonLiveLocals(currentBlock.localsLiveOut);
-
             invoke.setNext(createTarget(nextBlock, frameState));
             invoke.setStateAfter(frameState.create(nextBlock.startBci));
             return invoke;