changeset 19558:e9d88438d154

Small refactoring in node class.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 23 Feb 2015 18:02:08 +0100
parents f53c6c8e2048
children 08d94d9f0b0f
files graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java
diffstat 1 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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<Node> 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);