From 7bcbfaef09f04e243e6f338f9ce735428d166a68 Mon Sep 17 00:00:00 2001 From: Todd Gruben Date: Tue, 15 Aug 2017 11:36:49 -0500 Subject: [PATCH] fix for #770 --- roaring/roaring.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roaring/roaring.go b/roaring/roaring.go index cfcda97d1..065f4e6df 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -197,6 +197,7 @@ func (b *Bitmap) CountRange(start, end uint64) (n uint64) { if len(b.keys) == 0 { return } + skey := highbits(start) ekey := highbits(end) @@ -233,7 +234,11 @@ func (b *Bitmap) CountRange(start, end uint64) (n uint64) { // Count containers in between. for x := i + 1; x < j; x++ { + if ekey < b.keys[x] { + break + } n += uint64(b.containers[x].n) + } return n