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 8d8960f635
commit 8c83c021b0

View File

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