# HG changeset patch # User Erik Eckstein # Date 1386083151 -3600 # Node ID d5c6d9beebe3fe73f9c81c2a1611ec76b0af2227 # Parent 2b43fcc68adde29296bad26ba9ab6537a9761ec1 graph builder: fixed wrong liveness of locals in ExceptionObject?s frame state diff -r 2b43fcc68add -r d5c6d9beebe3 graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java --- 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;