changeset 7496:57e651659b4d

Fix for lock elimination phase.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 17 Jan 2013 00:41:44 +0100
parents bf7a1be7c709
children 0f8c6dbf68be
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LockEliminationPhase.java
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LockEliminationPhase.java	Thu Jan 17 00:24:36 2013 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LockEliminationPhase.java	Thu Jan 17 00:41:44 2013 +0100
@@ -37,8 +37,9 @@
             if (next instanceof MonitorEnterNode) {
                 MonitorEnterNode monitorEnterNode = (MonitorEnterNode) next;
                 if (monitorEnterNode.object() == node.object()) {
+                    FixedNode monitorEnterSuccessor = monitorEnterNode.next();
                     monitorEnterNode.setNext(null);
-                    ((FixedWithNextNode) node.predecessor()).setNext(monitorEnterNode.next());
+                    ((FixedWithNextNode) node.predecessor()).setNext(monitorEnterSuccessor);
                     FrameState stateAfterFirst = node.stateAfter();
                     FrameState stateAfterSecond = monitorEnterNode.stateAfter();
                     node.safeDelete();