]> git.saurik.com Git - bison.git/blobdiff - src/output.c
Fix some memory leaks, and fix a bug: state 0 was examined twice.
[bison.git] / src / output.c
index c2a64db45a7678c92ffc010e642fc1252e8bbb71..4a7a72653a7e97c1bd0226ef9f05f2a076b64a63 100644 (file)
@@ -430,7 +430,7 @@ action_row (state_t *state)
   int i;
   rule_number_t default_rule = 0;
   reductions_t *redp = state->reductions;
-  transitions_t *transitions = state->shifts;
+  transitions_t *transitions = state->transitions;
   errs_t *errp = state->errs;
   /* set nonzero to inhibit having any default reduction */
   int nodefault = 0;
@@ -442,19 +442,20 @@ action_row (state_t *state)
   if (redp->num >= 1)
     {
       int j;
+      bitset_iterator biter;
       /* loop over all the rules available here which require
         lookahead */
       for (i = state->nlookaheads - 1; i >= 0; --i)
        /* and find each token which the rule finds acceptable
           to come next */
-       BITSET_EXECUTE (state->lookaheads[i], 0, j,
+       BITSET_FOR_EACH (biter, state->lookaheads[i], j, 0)
        {
          /* and record this rule as the rule to use if that
             token follows.  */
          if (actrow[j] != 0)
            conflicted = conflrow[j] = 1;
          actrow[j] = -state->lookaheads_rule[i]->number;
-       });
+       }
     }
 
   /* Now see which tokens are allowed for shifts in this state.  For