changeset 7265:32e29e5df27e

SwitchNode: avoid sharing any arrays while cloning
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 18 Dec 2012 15:02:42 +0100
parents 494d99e07614
children a6dfccdc3694
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java
diffstat 1 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java	Tue Dec 18 14:29:04 2012 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java	Tue Dec 18 15:02:42 2012 +0100
@@ -22,6 +22,8 @@
  */
 package com.oracle.graal.nodes.extended;
 
+import java.util.*;
+
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.graph.*;
 import com.oracle.graal.nodes.*;
@@ -34,8 +36,8 @@
     @Successor protected final NodeSuccessorList<BeginNode> successors;
     protected double[] successorProbabilities;
     @Input private ValueNode value;
-    private final double[] keyProbabilities;
-    private final int[] keySuccessors;
+    private double[] keyProbabilities;
+    private int[] keySuccessors;
 
     public ValueNode value() {
         return value;
@@ -139,4 +141,13 @@
         }
         return probability;
     }
+
+    @Override
+    public SwitchNode clone(Graph into) {
+        SwitchNode newSwitch = (SwitchNode) super.clone(into);
+        newSwitch.successorProbabilities = Arrays.copyOf(successorProbabilities, successorProbabilities.length);
+        newSwitch.keyProbabilities = Arrays.copyOf(keyProbabilities, keyProbabilities.length);
+        newSwitch.keySuccessors = Arrays.copyOf(keySuccessors, keySuccessors.length);
+        return newSwitch;
+    }
 }