}
bool bitmap_isclear(const Bitmap *b) {
- unsigned i;
if (!b)
return true;
- for (i = 0; i < b->n_bitmaps; i++)
- if (b->bitmaps[i] != 0)
+ FOREACH_ARRAY(i, b->bitmaps, b->n_bitmaps)
+ if (*i != 0)
return false;
return true;
bool bitmap_equal(const Bitmap *a, const Bitmap *b) {
size_t common_n_bitmaps;
const Bitmap *c;
- unsigned i;
if (a == b)
return true;
return false;
c = a->n_bitmaps > b->n_bitmaps ? a : b;
- for (i = common_n_bitmaps; i < c->n_bitmaps; i++)
+ for (unsigned i = common_n_bitmaps; i < c->n_bitmaps; i++)
if (c->bitmaps[i] != 0)
return false;
int bitmap_set(Bitmap *b, unsigned n);
void bitmap_unset(Bitmap *b, unsigned n);
-bool bitmap_isset(const Bitmap *b, unsigned n);
-bool bitmap_isclear(const Bitmap *b);
+bool bitmap_isset(const Bitmap *b, unsigned n) _pure_;
+bool bitmap_isclear(const Bitmap *b) _pure_;
void bitmap_clear(Bitmap *b);
bool bitmap_iterate(const Bitmap *b, Iterator *i, unsigned *n);
-bool bitmap_equal(const Bitmap *a, const Bitmap *b);
+bool bitmap_equal(const Bitmap *a, const Bitmap *b) _pure_;
#define _BITMAP_FOREACH(n, b, i) \
for (Iterator i = {}; bitmap_iterate((b), &i, (unsigned*)&(n)); )