From 744ebf56851b5c0f549e68b07d3fd9c9fda32925 Mon Sep 17 00:00:00 2001 From: tylo Date: Fri, 14 Aug 2020 17:34:17 +0200 Subject: Fixed cbitset iter. --- examples/bits.c | 2 +- stc/cbitset.h | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/examples/bits.c b/examples/bits.c index 88d9a1f3..c54c02fd 100644 --- a/examples/bits.c +++ b/examples/bits.c @@ -23,7 +23,7 @@ int main() { cbitset_set_value(&set, 99, false); printf("%4zu: ", set.size); c_foreach (i, cbitset, set) - printf("%d", *i.item); + printf("%d", i.item(i)); puts(""); printf("%4zu: ", set.size); for (int i=0; isize) { cbitset_iter_t it = {self, 0, NULL, NULL, 0}; return it; } - cbitset_iter_t it = {self, 0, &it._val, NULL, self->_arr[0] & 1}; + if (self->size == 0) { cbitset_iter_t it = {NULL}; return it; } + cbitset_iter_t it = {self, &cbitset_item, NULL, 0}; return it; } STC_INLINE void cbitset_next(cbitset_iter_t* it) { if (++it->pos == it->_bs->size) it->item = NULL; - else *it->item = cbitset_test(*it->_bs, it->pos); } #if !defined(STC_HEADER) || defined(STC_IMPLEMENTATION) -- cgit v1.2.3