diff --git a/roaring/roaring.go b/roaring/roaring.go index 5bf78942a..055c81e36 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -1216,18 +1216,19 @@ func (c *container) runAdd(v uint16) bool { c.runs = []interval16{{start: v, last: v}} return true } + i := sort.Search(len(c.runs), func(i int) bool { return c.runs[i].last >= v }) - if i == len(c.runs){ - i-- + if i == len(c.runs) { + i-- } - iv:=c.runs[i] - if v>= iv.start && iv.last>=v{ + iv := c.runs[i] + if v >= iv.start && iv.last >= v { return false } - + c.unmap() if iv.last < v { if iv.last == v-1 {