# HG changeset patch # User Gilles Duboscq # Date 1355839362 -3600 # Node ID 32e29e5df27e1e724849ef480664aa3600b1ce96 # Parent 494d99e0761474d142422a269ba583851f777287 SwitchNode: avoid sharing any arrays while cloning diff -r 494d99e07614 -r 32e29e5df27e graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java --- 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 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; + } }