Mercurial > hg > graal-compiler
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; + } }