+#define MONO_BITSET_FOREACH(set,idx,/*stmt*/...) \
+ do \
+ { \
+ MonoBitSet *set__ = (set); \
+ for (int i__ = 0; i__ < set__->size / MONO_BITSET_BITS_PER_CHUNK; i__++) { \
+ if (set__->data [i__]) { \
+ for (int j__ = 0; j__ < MONO_BITSET_BITS_PER_CHUNK; j__++) { \
+ if (set__->data [i__] & ((gsize) 1 << j__)) { \
+ guint idx = j__ + i__ * MONO_BITSET_BITS_PER_CHUNK; \
+ __VA_ARGS__; \
+ } \
+ } \
+ } \
+ } \
+ } while (0)
+