diff --git a/roaring/roaring.go b/roaring/roaring.go index 5992942c1..99a87a0d9 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -3779,7 +3779,10 @@ func unionArrayArrayInPlace(a, b *Container) *Container { // for InPlace, we actually want to ensure that // we update a, as long as it's not frozen. a = a.Thaw() - a.setArray(b.array()) + // ... but we also want to be sure we don't end up + // copying in a mapped object into our not-mapped + // object. + a.setArrayMaybeCopy(b.array(), b.Mapped()) return a.optimize() } return a