ref: 2f96f75f0bf5b6d0bcd957c286430db677cd5063
parent: 95f8b3d8a134c32f3c62eeab364c67f29e7542e3
author: Ori Bernstein <[email protected]>
date: Sat Jun 30 19:48:08 EDT 2012
Speed up bitset iteration a bit. Skip whole words when we can.
--- a/parse/bitset.c
+++ b/parse/bitset.c
@@ -80,6 +80,8 @@
size_t i;
for (i = *elt; i < bsmax(bs); i++) {
+ while (!bs->chunks[i/Sizetbits])
+ i = (i + Sizetbits) & ~(Sizetbits - 1);
if (bshas(bs, i)) {
*elt = i;
return 1;