An empty BitArray is nil.

This commit is contained in:
Jae Kwon
2015-06-22 13:46:25 -07:00
parent 829df93577
commit 3db63477aa

View File

@ -13,7 +13,11 @@ type BitArray struct {
Elems []uint64 `json:"elems"` // NOTE: persisted via reflect, must be exported Elems []uint64 `json:"elems"` // NOTE: persisted via reflect, must be exported
} }
// There is no BitArray whose Size is 0. Use nil instead.
func NewBitArray(bits uint) *BitArray { func NewBitArray(bits uint) *BitArray {
if bits == 0 {
return nil
}
return &BitArray{ return &BitArray{
Bits: bits, Bits: bits,
Elems: make([]uint64, (bits+63)/64), Elems: make([]uint64, (bits+63)/64),
@ -168,10 +172,6 @@ func (bA *BitArray) IsFull() bool {
bA.mtx.Lock() bA.mtx.Lock()
defer bA.mtx.Unlock() defer bA.mtx.Unlock()
if bA.Bits == 0 {
return false
}
// Check all elements except the last // Check all elements except the last
for _, elem := range bA.Elems[:len(bA.Elems)-1] { for _, elem := range bA.Elems[:len(bA.Elems)-1] {
if (^elem) != 0 { if (^elem) != 0 {