Fix bitmap_sfu() regression.

Fix bitmap_sfu() to shift by LG_BITMAP_GROUP_NBITS rather than
hard-coded 6 when using linear (non-USE_TREE) bitmap search.  In
practice this affects only 64-bit systems for which sizeof(long) is not
8 (i.e. Windows), since USE_TREE is defined for 32-bit systems.

This regression was caused by b8823ab026
(Use linear scan for small bitmaps).

This resolves #368.
This commit is contained in:
Jason Evans 2016-04-06 10:32:06 -07:00
parent a3c4193280
commit 4a8abbb400

View File

@ -223,7 +223,7 @@ bitmap_sfu(bitmap_t *bitmap, const bitmap_info_t *binfo)
i++;
g = bitmap[i];
}
bit = (bit - 1) + (i << 6);
bit = (bit - 1) + (i << LG_BITMAP_GROUP_NBITS);
#endif
bitmap_set(bitmap, binfo, bit);
return (bit);