# HG changeset patch # User Gilles Duboscq # Date 1339001739 -7200 # Node ID 21cab9000931161839807cb30cb14745b8a00ac0 # Parent 9743ae819f7350871ce8fc44f82ad2ee83078bc9 .filter() on Graph.getNode now tries to use the fast node iterator if possible diff -r 9743ae819f73 -r 21cab9000931 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Tue Jun 05 17:38:48 2012 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Wed Jun 06 18:55:39 2012 +0200 @@ -313,6 +313,15 @@ public Iterator iterator() { return new NodeIterator(); } + + @SuppressWarnings("unchecked") + @Override + public NodeIterable filter(Class clazz) { + if (IterableNodeType.class.isAssignableFrom(clazz)) { + return getNodes((Class) clazz); + } + return super.filter(clazz); + } }; } diff -r 9743ae819f73 -r 21cab9000931 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java Tue Jun 05 17:38:48 2012 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java Wed Jun 06 18:55:39 2012 +0200 @@ -34,10 +34,10 @@ return new FilteredNodeIterable<>(this).until(clazz); } @SuppressWarnings("unchecked") - public FilteredNodeIterable filter(Class clazz) { - return (FilteredNodeIterable) new FilteredNodeIterable<>(this).and(NodePredicates.isA(clazz)); + public NodeIterable filter(Class clazz) { + return (NodeIterable) new FilteredNodeIterable<>(this).and(NodePredicates.isA(clazz)); } - public FilteredNodeIterable filterInterface(Class iface) { + public NodeIterable filterInterface(Class iface) { return new FilteredNodeIterable<>(this).and(NodePredicates.isAInterface(iface)); } public FilteredNodeIterable filter(NodePredicate predicate) {