changeset 5480:c89a69ca8dbb

NodeBitMap is a NodeIterable
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 04 Jun 2012 16:00:25 +0200
parents af838558e9e5
children e26e6dca0bcf 62767a364197
files graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java
diffstat 2 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java	Fri Jun 01 17:27:38 2012 +0200
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java	Mon Jun 04 16:00:25 2012 +0200
@@ -24,9 +24,11 @@
 
 import java.util.*;
 
+import com.oracle.graal.graph.iterators.*;
 
 
-public final class NodeBitMap implements Iterable<Node>{
+
+public final class NodeBitMap extends NodeIterable<Node>{
     private final boolean autoGrow;
     private final BitMap bitMap;
     private final Graph graph;
@@ -186,4 +188,19 @@
     public NodeBitMap copy() {
         return new NodeBitMap(graph, autoGrow, bitMap.copy());
     }
+
+    @Override
+    public NodeIterable<Node> distinct() {
+        return this;
+    }
+
+    @Override
+    public int count() {
+        return bitMap.cardinality();
+    }
+
+    @Override
+    public boolean contains(Node node) {
+        return isMarked(node);
+    }
 }
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java	Fri Jun 01 17:27:38 2012 +0200
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java	Mon Jun 04 16:00:25 2012 +0200
@@ -46,7 +46,7 @@
     public FilteredNodeIterable<T> nonNull() {
         return new FilteredNodeIterable<>(this).and(NodePredicates.isNotNull());
     }
-    public FilteredNodeIterable<T> distinct() {
+    public NodeIterable<T> distinct() {
         return new FilteredNodeIterable<>(this).distinct();
     }
     public List<T> snapshot() {