diff --git a/roaring/containers_btree.go b/roaring/containers_btree.go index 257a756fa..79a3d557c 100644 --- a/roaring/containers_btree.go +++ b/roaring/containers_btree.go @@ -189,6 +189,8 @@ func (btc *bTreeContainers) Repair() { // replace the given container. func (btc *bTreeContainers) Update(key uint64, fn func(*Container, bool) (*Container, bool)) { btc.tree.Put(key, fn) + btc.lastKey = ^uint64(0) + btc.lastContainer = nil } // UpdateEvery calls fn (existing-container, existed), and expects diff --git a/roaring/containers_slice.go b/roaring/containers_slice.go index 1eaa65cf0..325b10547 100644 --- a/roaring/containers_slice.go +++ b/roaring/containers_slice.go @@ -205,6 +205,7 @@ func (sc *sliceContainers) Update(key uint64, fn func(*Container, bool) (*Contai sc.insertAt(key, nc, i) } } + sc.invalidateCache() } // UpdateEvery calls fn (existing-container, existed), and expects