X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FResultNode.java;h=655b85a01e9740a4c8076522ecadd977c152999b;hp=65732a6e88ef126af37c6f96dd585b93c3722e6c;hb=c1a7dcf0dd5b839d82215263d0f57470e905a73d;hpb=36d88939587827b1cea9ab842ec70bd168a08be1 diff --git a/src/edu/berkeley/sbp/ResultNode.java b/src/edu/berkeley/sbp/ResultNode.java index 65732a6..655b85a 100644 --- a/src/edu/berkeley/sbp/ResultNode.java +++ b/src/edu/berkeley/sbp/ResultNode.java @@ -17,11 +17,14 @@ final class ResultNode public boolean isDoomedState() { /* this is irrelevant */ return false; } public Forest getForest() { return f; } public String toString() { return super.toString()+"->"+phase(); } + public boolean hasPathToRoot() { + if (predecessorPhase()==null) return true; + return super.hasPathToRoot(); + } public void check() { if (destroyed) return; - if (successors.size()==0) destroy(); - else if (predecessors.size()==0) destroy(); + if (!hasSuccessors() || !hasPredecessors()) destroy(); } protected void destroy() { if (destroyed) return; @@ -32,7 +35,7 @@ final class ResultNode protected void addPred(StateNode pred) { super.addPred(pred); // results should have at most one predecessor - if (predecessors.size() > 1) throw new Error(); + //if (predecessors.size() > 1) throw new Error(); } public ResultNode() { this(null, null, null); }