# HG changeset patch # User Thomas Wuerthinger # Date 1304009915 -7200 # Node ID 98eef19a381c4eaaa034884d246fdd1022fee1ba # Parent f14f8c24f77d7a8242e1231ca75ea021a09449e6 Fixed delete() method diff -r f14f8c24f77d -r 98eef19a381c graal/GraalGraph/src/com/oracle/graal/graph/Node.java --- 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();