# HG changeset patch # User Thomas Wuerthinger # Date 1424710928 -3600 # Node ID e9d88438d154fc7049d1a134464c425cf935d946 # Parent f53c6c8e204851500415d1c9afd33e30cbf2d824 Small refactoring in node class. diff -r f53c6c8e2048 -r e9d88438d154 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Feb 23 17:57:58 2015 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Mon Feb 23 18:02:08 2015 +0100 @@ -569,16 +569,18 @@ static void updateEdgesInPlace(Node node, InplaceUpdateClosure duplicationReplacement, Edges edges) { int index = 0; - while (index < edges.getDirectCount()) { + Type curType = edges.type(); + int directCount = edges.getDirectCount(); + while (index < directCount) { Node edge = edges.getNode(node, index); if (edge != null) { - Node newEdge = duplicationReplacement.replacement(edge, edges.type()); - if (edges.type() == Edges.Type.Inputs) { + Node newEdge = duplicationReplacement.replacement(edge, curType); + if (curType == Edges.Type.Inputs) { node.updateUsages(null, newEdge); } else { node.updatePredecessor(null, newEdge); } - assert newEdge == null || edges.getType(index).isAssignableFrom(newEdge.getClass()) : "Can not assign " + newEdge.getClass() + " to " + edges.getType(index) + " in " + node; + assert assertUpdateValid(node, edges, index, newEdge); edges.initializeNode(node, index, newEdge); } index++; @@ -587,12 +589,17 @@ while (index < edges.getCount()) { NodeList list = edges.getNodeList(node, index); if (list != null) { - edges.initializeList(node, index, updateEdgeListCopy(node, list, duplicationReplacement, edges.type())); + edges.initializeList(node, index, updateEdgeListCopy(node, list, duplicationReplacement, curType)); } index++; } } + private static boolean assertUpdateValid(Node node, Edges edges, int index, Node newEdge) { + assert newEdge == null || edges.getType(index).isAssignableFrom(newEdge.getClass()) : "Can not assign " + newEdge.getClass() + " to " + edges.getType(index) + " in " + node; + return true; + } + void updateInputSuccInPlace(Node node, InplaceUpdateClosure duplicationReplacement) { updateEdgesInPlace(node, duplicationReplacement, inputs); updateEdgesInPlace(node, duplicationReplacement, successors);