+2001-11-28  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (closure): No longer optimize the special case
+       where all the bits of `ruleset[r]' are set to 0, to make the code
+       clearer.
+
+       
 2001-11-28  Akim Demaille  <akim@epita.fr>
 
        * src/closure.c (closure): `r' and `c' are new variables, used to
 
   c = 0;
   for (r = 0; r < rulesetsize; ++r)
     {
-      if (ruleset[r] == 0)
-       {
-         ruleno += BITS_PER_WORD;
-       }
-      else
-       {
-         int b;
+      int b;
 
-         for (b = 0; b < BITS_PER_WORD; b++)
+      for (b = 0; b < BITS_PER_WORD; b++)
+       {
+         if (ruleset[r] & (1 << b))
            {
-             if (ruleset[r] & (1 << b))
+             itemno = rule_table[ruleno].rhs;
+             while (c < n && core[c] < itemno)
                {
-                 itemno = rule_table[ruleno].rhs;
-                 while (c < n && core[c] < itemno)
-                   {
-                     itemset[itemsetsize] = core[c];
-                     itemsetsize++;
-                     c++;
-                   }
-                 itemset[itemsetsize] = itemno;
+                 itemset[itemsetsize] = core[c];
                  itemsetsize++;
+                 c++;
                }
-
-             ruleno++;
+             itemset[itemsetsize] = itemno;
+             itemsetsize++;
            }
+
+         ruleno++;
        }
     }