changeset 5424:068cc464e0cf

add snapshot() call in MergeNode.removeEnd to fix concurrent modification problem
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 22 May 2012 14:57:01 +0200
parents d3dec1a05a80
children 0364a2a874b8
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java	Tue May 22 11:11:48 2012 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java	Tue May 22 14:57:01 2012 +0200
@@ -81,7 +81,7 @@
         int predIndex = phiPredecessorIndex(pred);
         assert predIndex != -1;
         deleteEnd(pred);
-        for (PhiNode phi : phis()) {
+        for (PhiNode phi : phis().snapshot()) {
             ValueNode removedValue = phi.valueAt(predIndex);
             phi.removeInput(predIndex);
             if (removedValue != null && removedValue.isAlive() && removedValue.usages().isEmpty() && GraphUtil.isFloatingNode().apply(removedValue)) {