util: Explain BITSET_FOREACH_SET params

__size, in particular, makes this macro rather confusing to understand
how to use. Hopefully this comment saves future users the headache.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3499>
This commit is contained in:
Matt Turner 2020-01-21 14:48:04 -08:00 committed by Marge Bot
parent 60f9b45802
commit d3eb2a0951

View file

@ -129,6 +129,14 @@ __bitset_next_set(unsigned i, BITSET_WORD *tmp,
return word * BITSET_WORDBITS + bit;
}
/**
* Iterates over each set bit in a set
*
* @param __i iteration variable, bit number
* @param __tmp an internally-used temporary bitset
* @param __set the bitset to iterate (will not be modified)
* @param __size number of bits in the set to consider
*/
#define BITSET_FOREACH_SET(__i, __tmp, __set, __size) \
for (__tmp = *(__set), __i = 0; \
(__i = __bitset_next_set(__i, &__tmp, __set, __size)) < __size;)