Skip to content

Commit 1c6a47d

Browse files
committed
bugfix
1 parent d3bf873 commit 1c6a47d

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

bitmapcontainer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ func (bc *bitmapContainer) iandNotRun16(rc *runContainer16) container {
904904
cardinalityChange := popcntSlice(bc.bitmap[wordRangeStart : wordRangeEnd+1]) // before cardinality - after cardinality (for word range)
905905

906906
for _, iv := range rc.iv {
907-
resetBitmapRange(bc.bitmap, int(iv.start), int(iv.last()+1))
907+
resetBitmapRange(bc.bitmap, int(iv.start), int(iv.last())+1)
908908
}
909909

910910
cardinalityChange -= popcntSlice(bc.bitmap[wordRangeStart : wordRangeEnd+1])

bitmapcontainer_test.go

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package roaring
22

33
import (
4+
"math"
45
"math/rand"
56
"testing"
67

@@ -313,12 +314,14 @@ func TestBitmapContainerIAndNot(t *testing.T) {
313314
for i := 0; i < arrayDefaultMaxSize; i++ {
314315
bc.iadd(uint16(i * 3))
315316
}
317+
bc.iadd(math.MaxUint16)
316318

317319
var rc container
318320
rc = newRunContainer16Range(0, 1)
319321
for i := 0; i < arrayDefaultMaxSize-3; i++ {
320322
rc = rc.iaddRange(i*3, i*3+1)
321323
}
324+
rc.iaddRange(math.MaxUint16-3, math.MaxUint16)
322325

323326
bc = bc.iandNot(rc)
324327

0 commit comments

Comments
 (0)