changeset 21650:45ed86c4d127

Truffle: change NodeUtil.findFirstNodeInstance to include root in potential matches
author Andreas Woess <andreas.woess@oracle.com>
date Mon, 01 Jun 2015 13:32:28 +0200
parents 1c76a5662753
children f4cd6b1c2efc
files graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java
diffstat 2 files changed, 8 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java	Mon Jun 01 17:47:28 2015 -0700
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java	Mon Jun 01 13:32:28 2015 +0200
@@ -352,7 +352,7 @@
     public final Iterable<Node> getChildren() {
         return new Iterable<Node>() {
             public Iterator<Node> iterator() {
-                return nodeClass.makeIterator(Node.this);
+                return getNodeClass().makeIterator(Node.this);
             }
         };
     }
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java	Mon Jun 01 17:47:28 2015 -0700
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java	Mon Jun 01 13:32:28 2015 +0200
@@ -454,14 +454,13 @@
     }
 
     public static <T> T findFirstNodeInstance(Node root, Class<T> clazz) {
-        for (Node childNode : findNodeChildren(root)) {
-            if (clazz.isInstance(childNode)) {
-                return clazz.cast(childNode);
-            } else {
-                T node = findFirstNodeInstance(childNode, clazz);
-                if (node != null) {
-                    return node;
-                }
+        if (clazz.isInstance(root)) {
+            return clazz.cast(root);
+        }
+        for (Node child : root.getChildren()) {
+            T node = findFirstNodeInstance(child, clazz);
+            if (node != null) {
+                return node;
             }
         }
         return null;