diff --git a/roaring/roaring.go b/roaring/roaring.go index 8ac2f81a1..eed7aae39 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -167,11 +167,9 @@ func (b *Bitmap) Add(a ...uint64) (changed bool, err error) { return changed, nil } -// DirectAdd adds values to the bitmap by bypassing the op log. -func (b *Bitmap) DirectAdd(values ...uint64) { - for _, value := range values { - b.add(value) - } +// DirectAdd adds a value to the bitmap by bypassing the op log. +func (b *Bitmap) DirectAdd(value uint64) bool { + return b.add(value) } func (b *Bitmap) add(v uint64) bool { diff --git a/roaring/roaring_test.go b/roaring/roaring_test.go index a06e882c8..64cb45e81 100644 --- a/roaring/roaring_test.go +++ b/roaring/roaring_test.go @@ -334,8 +334,9 @@ func TestBitmap_ArrayCountRange(t *testing.T) { func TestBitmap_DirectAdd(t *testing.T) { bits := []uint64{0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 1000000, 1000002, 1000003, 1000004, 1000005, 1000006, 1000010, 1000011, 1000012, 1000013, 1000014} bm := roaring.NewBitmap() - bm.DirectAdd(0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, 17) - bm.DirectAdd(1000000, 1000002, 1000003, 1000004, 1000005, 1000006, 1000010, 1000011, 1000012, 1000013, 1000014) + for _, b := range []uint64{0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 1000000, 1000002, 1000003, 1000004, 1000005, 1000006, 1000010, 1000011, 1000012, 1000013, 1000014} { + bm.DirectAdd(b) + } if len(bits) != int(bm.Count()) { t.Fatalf("count %d != %d", len(bits), bm.Count()) }