Fixed issue where BitSet didn't handle a range of 64 bits correctly on bulk operations - now just return the predefined MASK which has all the bits set when requesting that all the bits be set.

This commit is contained in:
Mike Keesey
2012-07-06 23:33:05 -06:00
parent 9c9ee5c26d
commit 7947981b4b
2 changed files with 12 additions and 1 deletions

View File

@ -34,7 +34,11 @@ public class BitSet implements Serializable, Cloneable {
private static long getTrueMask(int fromIndex, int toIndex) {
int currentRange = toIndex - fromIndex;
return (((1L << currentRange) - 1L) << (fromIndex % BITS_PER_LONG));
if (currentRange == 64) {
return MASK;
} else {
return (((1L << currentRange) - 1L) << (fromIndex % BITS_PER_LONG));
}
}
public BitSet(int bitLength) {