From 1d7cba184c2a24c080f192e95d05d30788bf6ac7 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Thu, 6 Nov 2025 14:41:39 +0100 Subject: [PATCH] fix linear palette not growing correctly --- .../java/com/volmit/iris/util/hunk/bits/DataContainer.java | 2 +- .../java/com/volmit/iris/util/hunk/bits/LinearPalette.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java index f9f9db027..2d02875fa 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java +++ b/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java @@ -29,7 +29,7 @@ public class DataContainer { private static final boolean TRIM = Boolean.getBoolean("iris.trim-palette"); protected static final int INITIAL_BITS = 3; protected static final int LINEAR_BITS_LIMIT = 4; - protected static final int LINEAR_INITIAL_LENGTH = (int) Math.pow(2, LINEAR_BITS_LIMIT) + 1; + protected static final int LINEAR_INITIAL_LENGTH = (int) Math.pow(2, LINEAR_BITS_LIMIT) + 2; protected static final int[] BIT = computeBitLimits(); private final Lock read, write; diff --git a/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java index 8e9b0d3de..a93b4887c 100644 --- a/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java +++ b/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java @@ -52,11 +52,11 @@ public class LinearPalette implements Palette { return index; } - private synchronized void grow(int newLength) { - if (palette.length() <= newLength) + private synchronized void grow(int lastIndex) { + if (palette.length() > lastIndex) return; - AtomicReferenceArray a = new AtomicReferenceArray<>(newLength + 1); + AtomicReferenceArray a = new AtomicReferenceArray<>(lastIndex + 1); for (int i = 0; i < palette.length(); i++) { a.set(i, palette.get(i)); }