Fix obscure bug with BitMask64::get_next_higher_different_bit()

This commit is contained in:
rdb 2015-01-22 13:46:01 +01:00
parent f68e8cdee4
commit 536d6e7810

View File

@ -503,7 +503,7 @@ get_next_higher_different_bit(int low_bit) const {
// Mask out all of the bits below low_bit. Since we already know // Mask out all of the bits below low_bit. Since we already know
// that low_bit is 0, we can use (1 << low_bit) instead of (1 << // that low_bit is 0, we can use (1 << low_bit) instead of (1 <<
// (low_bit + 1)), which becomes undefined when (low_bit + 1) == 32. // (low_bit + 1)), which becomes undefined when (low_bit + 1) == 32.
w &= ~((1 << low_bit) - 1); w &= ~(((WordType)1 << low_bit) - 1);
if (w == 0) { if (w == 0) {
// All higher bits in the word have the same value. Since every // All higher bits in the word have the same value. Since every