Fix edge case in DataPaletteImpl#replaceIds (#4930)

This commit is contained in:
RK_01 authored and GitHub committed 2026-05-01 22:31:07 +02:00
1 parent 333a373fcc
commit 315a987f4f
1 file changed
+4 -5
@@ -25,7 +25,6 @@ package com.viaversion.viaversion.api.minecraft.chunks;
import it.unimi.dsi.fastutil.ints.Int2IntMap;
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import java.util.function.IntUnaryOperator;
public final class DataPaletteImpl implements DataPalette {
@@ -42,7 +41,7 @@ public final class DataPaletteImpl implements DataPalette {
}
public DataPaletteImpl(final int valuesLength, final int initialSize) {
values = new EmptyChunkData(valuesLength);
values = new SingleChunkData(valuesLength);
sizeBits = Integer.numberOfTrailingZeros(valuesLength) / 3;
// Pre-size the palette array/map
palette = new IntArrayList(initialSize);
@@ -127,7 +126,7 @@ public final class DataPaletteImpl implements DataPalette {
@Override
public void replaceIds(final IntUnaryOperator mapper) {
final int oldSize = palette.size();
if (oldSize == 0 || values instanceof EmptyChunkData) {
if (oldSize == 0) {
return;
}
@@ -191,11 +190,11 @@ public final class DataPaletteImpl implements DataPalette {
int size();
}
private final class EmptyChunkData implements ChunkData {
private final class SingleChunkData implements ChunkData {
private final int size;
public EmptyChunkData(int size) {
public SingleChunkData(int size) {
this.size = size;
}