checkpoint
[sbp.git] / src / edu / berkeley / sbp / GSS.java
index 16725f1..74cbb48 100644 (file)
@@ -81,7 +81,7 @@ class GSS {
         private void newNode2(Node p, Node parent, Forest pending, Parser.Table.State state, boolean fromEmptyReduction) {
             p.holder.merge(pending);
             if (p.parents().contains(parent)) return;
         private void newNode2(Node p, Node parent, Forest pending, Parser.Table.State state, boolean fromEmptyReduction) {
             p.holder.merge(pending);
             if (p.parents().contains(parent)) return;
-            p.parents().add(parent);
+            p.parents().add(parent, true);
             if (p!=parent && !fromEmptyReduction) p.queueReductions(parent);
         }
         private void newNode3(Node parent, Forest pending, Parser.Table.State state, boolean fromEmptyReduction) {
             if (p!=parent && !fromEmptyReduction) p.queueReductions(parent);
         }
         private void newNode3(Node parent, Forest pending, Parser.Table.State state, boolean fromEmptyReduction) {
@@ -226,7 +226,7 @@ class GSS {
                 this.state = state;
                 Phase start = parent==null ? null : parent.phase();
                 if (pending != null) this.holder().merge(pending);
                 this.state = state;
                 Phase start = parent==null ? null : parent.phase();
                 if (pending != null) this.holder().merge(pending);
-                if (parent != null) parents().add(parent);
+                if (parent != null) parents().add(parent, true);
                 if (Phase.this.hash.get(code(state, start)) != null) throw new Error("severe problem!");
                 Phase.this.hash.put(code(state, start), this);
                 Phase.this.numNodes++;
                 if (Phase.this.hash.get(code(state, start)) != null) throw new Error("severe problem!");
                 Phase.this.hash.put(code(state, start), this);
                 Phase.this.numNodes++;