From a3d7dd509936f26aa5df2418b14a6063982f865d Mon Sep 17 00:00:00 2001 From: Richard Startin Date: Thu, 5 Sep 2019 03:23:59 +0100 Subject: [PATCH] stop ContainerAppender from capturing its builder --- .../java/org/roaringbitmap/RoaringBitmapWriter.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/RoaringBitmap/src/main/java/org/roaringbitmap/RoaringBitmapWriter.java b/RoaringBitmap/src/main/java/org/roaringbitmap/RoaringBitmapWriter.java index 44acdf0bc..8d111f0b2 100644 --- a/RoaringBitmap/src/main/java/org/roaringbitmap/RoaringBitmapWriter.java +++ b/RoaringBitmap/src/main/java/org/roaringbitmap/RoaringBitmapWriter.java @@ -139,8 +139,9 @@ public Wizard doPartialRadixSort() { */ @Override public RoaringBitmapWriter get() { + int capacity = initialCapacity; return new ContainerAppender<>( - partiallySortValues, () -> createUnderlying(initialCapacity), containerSupplier); + partiallySortValues, () -> createUnderlying(capacity), containerSupplier); } private static void sanityCheck(int count) { @@ -157,7 +158,8 @@ class BufferWizard extends Wizard { @Override protected Supplier arraySupplier() { - return () -> new MappeableArrayContainer(expectedContainerSize); + int size = expectedContainerSize; + return () -> new MappeableArrayContainer(size); } @Override @@ -175,7 +177,8 @@ abstract class RoaringWizard extends Wizard arraySupplier() { - return () -> new ArrayContainer(expectedContainerSize); + int size = expectedContainerSize; + return () -> new ArrayContainer(size); } @Override @@ -191,8 +194,9 @@ public Wizard fastRank() { @Override public RoaringBitmapWriter get() { if (constantMemory) { + int capacity = initialCapacity; return new ConstantMemoryContainerAppender<>( - partiallySortValues, () -> createUnderlying(initialCapacity)); + partiallySortValues, () -> createUnderlying(capacity)); } return super.get(); }