shithub: mc

Download patch

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;