From: adam Date: Fri, 20 Apr 2007 03:19:58 +0000 (-0400) Subject: abort if only remaining nodes are doomed X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=5c4157c1118401c4223ff485e9531fc3ba851be2;hp=a60fa7d36f9039881c6eac2b771bd53943d997b7 abort if only remaining nodes are doomed darcs-hash:20070420031958-5007d-bcba9daa363062ba4c756dd0b5f6231856322930.gz --- diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 5c1b92f..3c6beac 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -185,7 +185,7 @@ class GSS { */ private boolean newNode(Result result, State state, boolean fromEmptyReduction) { Node p = hash.get(state, result.phase()); - if (p != null) { p.addResult(result); return true; } + if (p != null) { p.addResult(result); return !state.doomed(); } do { if (token != null && state.canShift(token)) break; if (state.isAccepting()) break; @@ -195,7 +195,7 @@ class GSS { Node n = new Node(Phase.this, result, state, fromEmptyReduction); // ALLOC for(Object s : state.conjunctStates) newNode(new Result(null, n, null), (State)s, fromEmptyReduction); - return true; + return !n.state().doomed(); } public int toInt() { return pos+1; }