changeset 2558:98eef19a381c

Fixed delete() method
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Thu, 28 Apr 2011 18:58:35 +0200
parents f14f8c24f77d
children 46eab5817cc2
files graal/GraalGraph/src/com/oracle/graal/graph/Node.java
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/GraalGraph/src/com/oracle/graal/graph/Node.java	Thu Apr 28 18:30:55 2011 +0200
+++ b/graal/GraalGraph/src/com/oracle/graal/graph/Node.java	Thu Apr 28 18:58:35 2011 +0200
@@ -77,15 +77,17 @@
 
     public void replace(Node other) {
         assert !isDeleted() && !other.isDeleted();
-        assert other.graph == graph;
+        assert other == null || other.graph == graph;
         for (Node usage : usages) {
             usage.inputs.replaceFirstOccurrence(this, other);
         }
         for (Node predecessor : predecessors) {
             predecessor.successors.replaceFirstOccurrence(this, other);
         }
-        other.usages.addAll(usages);
-        other.predecessors.addAll(predecessors);
+        if (other != null) {
+            other.usages.addAll(usages);
+            other.predecessors.addAll(predecessors);
+        }
         usages.clear();
         predecessors.clear();
         delete();
@@ -97,12 +99,14 @@
 
     public void delete() {
         assert !isDeleted();
+        assert usages.size() == 0 && predecessors.size() == 0;
         for (int i = 0; i < inputs.size(); ++i) {
             inputs.set(i, Null);
         }
         for (int i = 0; i < successors.size(); ++i) {
             successors.set(i, Null);
         }
+        // make sure its not connected. pred usages
         graph.unregister(this);
         id = DeletedID;
         assert isDeleted();