Version 1.02.47 -
=================================
+ Speed up dm_bit_get_next with ffs().
Version 1.02.46 - 14th April 2010
=================================
out[i] = in1[i] | in2[i];
}
-/*
- * FIXME: slow
- */
-static inline int _test_word(uint32_t test, int bit)
+static int _test_word(uint32_t test, int bit)
{
- while (bit < (int) DM_BITS_PER_INT) {
- if (test & (0x1 << bit))
- return bit;
- bit++;
- }
+ int next_set_bit;
- return -1;
+ return ((next_set_bit = ffs(test >> bit)) ? next_set_bit + bit - 1 : -1);
}
int dm_bit_get_next(dm_bitset_t bs, int last_bit)