diff options
Diffstat (limited to 'lisc')
-rw-r--r-- | lisc/util.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lisc/util.c b/lisc/util.c index 63c73bd..4f09d93 100644 --- a/lisc/util.c +++ b/lisc/util.c @@ -328,15 +328,16 @@ bsiter(BSet *bs, uint *elt) { uint i; - for (i = *elt; i < bsmax(bs); i++) { + for (i=*elt;; i++) { while (i < bsmax(bs) && !bs->t[i/NBit]) i = (i + NBit) & -NBit; + if (i >= bsmax(bs)) + return 0; if (bshas(bs, i)) { *elt = i; return 1; } } - return 0; } void |