net.minecraft.client.util.memory

public class Arena<T>

implements AutoCloseable

com.mojang.blaze3d.util.TransientBlockAllocator
net.minecraft.class_1_1022
net.minecraft.client.util.memory.Arena

Field summary

Modifier and TypeField
private final long
blockSize
field_1_6965
blockSize
private final long
maxAlignment
field_1_6969
maxSupportedAlignment
private final Arena$Allocator<T>
allocator
field_1_6964
rawAllocator
private final Consumer<T>
onBlockUse
field_1_6970
blockAllocatedCallback
private final it.unimi.dsi.fastutil.objects.ReferenceArrayList<T>
specialBlocks
field_1_6971
oversizedBlocks
private final it.unimi.dsi.fastutil.objects.ReferenceArrayList<T>
freeBlocks
field_1_6968
freeBlocks
private final it.unimi.dsi.fastutil.objects.ReferenceArrayList<T>
usedBlocks
field_1_6972
occupiedBlocks
private T
currentBlock
field_1_6966
partialBlock
private long
currentOffset
field_1_6967
partialBlockOffset
static final boolean
$assertionsDisabled
field_1_6963
field_1_6963

Constructor summary

ModifierConstructor
public (long blockSize, long maxSupportedAlignment, Arena$Allocator<T> rawAllocator)
public (long blockSize, long maxSupportedAlignment, Arena$Allocator<T> rawAllocator, Consumer<T> blockAllocatedCallback)

Method summary

Modifier and TypeMethod
public void
close()
public long
blockSize()
method_1_6203()
getBlockSize()
public Runnable
rotate()
method_1_6209()
startClearing()
public boolean
canAllocateInBlock(long size, long alignment)
method_1_6204(long arg0, long arg1)
fitsInBlock(long size, long alignment)
public boolean
canAllocateInCurrentBlock(long size, long alignment)
method_1_6205(long arg0, long arg1)
fitsInPartialBlock(long size, long alignment)
private T
allocateBlock()
method_1_6202()
allocateBlock()
public Arena$Region<T>
allocate(long size, long alignment, long minimumAllocation, long elementSize)
method_1_6201(long arg0, long arg1, long arg2, long arg3)
allocate(long preferredSize, long alignment, long minimumSize, long sizeAlignment)
private void
lambda$rotate$1(it.unimi.dsi.fastutil.objects.ReferenceArrayList arg0, it.unimi.dsi.fastutil.objects.ReferenceArrayList arg1)
method_1_6208(it.unimi.dsi.fastutil.objects.ReferenceArrayList arg0, it.unimi.dsi.fastutil.objects.ReferenceArrayList arg1)
method_1_6208(it.unimi.dsi.fastutil.objects.ReferenceArrayList arg0, it.unimi.dsi.fastutil.objects.ReferenceArrayList arg1)
private static void
lambda$rotate$0()
method_1_6207()
method_1_6207()
private static void
lambda$new$0(Object arg0)
method_1_6206(Object arg0)
method_1_6206(Object block)