abstract class io.netty.buffer.PoolArena<T> implements io.netty.buffer.PoolArenaMetric
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: io.netty.buffer.PoolArena
super_class: java.lang.Object
{
static final boolean HAS_UNSAFE;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int numTinySubpagePools;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 32
final io.netty.buffer.PooledByteBufAllocator parent;
descriptor: Lio/netty/buffer/PooledByteBufAllocator;
flags: (0x0010) ACC_FINAL
private final int maxOrder;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final int pageSize;
descriptor: I
flags: (0x0010) ACC_FINAL
final int pageShifts;
descriptor: I
flags: (0x0010) ACC_FINAL
final int chunkSize;
descriptor: I
flags: (0x0010) ACC_FINAL
final int subpageOverflowMask;
descriptor: I
flags: (0x0010) ACC_FINAL
final int numSmallSubpagePools;
descriptor: I
flags: (0x0010) ACC_FINAL
final int directMemoryCacheAlignment;
descriptor: I
flags: (0x0010) ACC_FINAL
final int directMemoryCacheAlignmentMask;
descriptor: I
flags: (0x0010) ACC_FINAL
private final io.netty.buffer.PoolSubpage<T>[] tinySubpagePools;
descriptor: [Lio/netty/buffer/PoolSubpage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Lio/netty/buffer/PoolSubpage<TT;>;
private final io.netty.buffer.PoolSubpage<T>[] smallSubpagePools;
descriptor: [Lio/netty/buffer/PoolSubpage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Lio/netty/buffer/PoolSubpage<TT;>;
private final io.netty.buffer.PoolChunkList<T> q050;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
private final io.netty.buffer.PoolChunkList<T> q025;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
private final io.netty.buffer.PoolChunkList<T> q000;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
private final io.netty.buffer.PoolChunkList<T> qInit;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
private final io.netty.buffer.PoolChunkList<T> q075;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
private final io.netty.buffer.PoolChunkList<T> q100;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
private final java.util.List<io.netty.buffer.PoolChunkListMetric> chunkListMetrics;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lio/netty/buffer/PoolChunkListMetric;>;
private long allocationsNormal;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final io.netty.util.internal.LongCounter allocationsTiny;
descriptor: Lio/netty/util/internal/LongCounter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.util.internal.LongCounter allocationsSmall;
descriptor: Lio/netty/util/internal/LongCounter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.util.internal.LongCounter allocationsHuge;
descriptor: Lio/netty/util/internal/LongCounter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.util.internal.LongCounter activeBytesHuge;
descriptor: Lio/netty/util/internal/LongCounter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long deallocationsTiny;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long deallocationsSmall;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long deallocationsNormal;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final io.netty.util.internal.LongCounter deallocationsHuge;
descriptor: Lio/netty/util/internal/LongCounter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.util.concurrent.atomic.AtomicInteger numThreadCaches;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$io$netty$buffer$PoolArena$SizeClass;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/netty/buffer/PoolArena;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.netty.buffer.PoolArena.$assertionsDisabled:Z
3: invokestatic io.netty.util.internal.PlatformDependent.hasUnsafe:()Z
putstatic io.netty.buffer.PoolArena.HAS_UNSAFE:Z
4: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(io.netty.buffer.PooledByteBufAllocator, int, int, int, int, int);
descriptor: (Lio/netty/buffer/PooledByteBufAllocator;IIIII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic io.netty.util.internal.PlatformDependent.newLongCounter:()Lio/netty/util/internal/LongCounter;
putfield io.netty.buffer.PoolArena.allocationsTiny:Lio/netty/util/internal/LongCounter;
2: aload 0
invokestatic io.netty.util.internal.PlatformDependent.newLongCounter:()Lio/netty/util/internal/LongCounter;
putfield io.netty.buffer.PoolArena.allocationsSmall:Lio/netty/util/internal/LongCounter;
3: aload 0
invokestatic io.netty.util.internal.PlatformDependent.newLongCounter:()Lio/netty/util/internal/LongCounter;
putfield io.netty.buffer.PoolArena.allocationsHuge:Lio/netty/util/internal/LongCounter;
4: aload 0
invokestatic io.netty.util.internal.PlatformDependent.newLongCounter:()Lio/netty/util/internal/LongCounter;
putfield io.netty.buffer.PoolArena.activeBytesHuge:Lio/netty/util/internal/LongCounter;
5: aload 0
invokestatic io.netty.util.internal.PlatformDependent.newLongCounter:()Lio/netty/util/internal/LongCounter;
putfield io.netty.buffer.PoolArena.deallocationsHuge:Lio/netty/util/internal/LongCounter;
6: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield io.netty.buffer.PoolArena.numThreadCaches:Ljava/util/concurrent/atomic/AtomicInteger;
7: aload 0
aload 1
putfield io.netty.buffer.PoolArena.parent:Lio/netty/buffer/PooledByteBufAllocator;
8: aload 0
iload 2
putfield io.netty.buffer.PoolArena.pageSize:I
9: aload 0
iload 3
putfield io.netty.buffer.PoolArena.maxOrder:I
10: aload 0
iload 4
putfield io.netty.buffer.PoolArena.pageShifts:I
11: aload 0
iload 5
putfield io.netty.buffer.PoolArena.chunkSize:I
12: aload 0
iload 6
putfield io.netty.buffer.PoolArena.directMemoryCacheAlignment:I
13: aload 0
iload 6
iconst_1
isub
putfield io.netty.buffer.PoolArena.directMemoryCacheAlignmentMask:I
14: aload 0
iload 2
iconst_1
isub
iconst_m1
ixor
putfield io.netty.buffer.PoolArena.subpageOverflowMask:I
15: aload 0
aload 0
bipush 32
invokevirtual io.netty.buffer.PoolArena.newSubpagePoolArray:(I)[Lio/netty/buffer/PoolSubpage;
putfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
16: iconst_0
istore 7
start local 7 17: goto 20
18: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PooledByteBufAllocator int int int int int int
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
iload 7
aload 0
iload 2
invokevirtual io.netty.buffer.PoolArena.newSubpagePoolHead:(I)Lio/netty/buffer/PoolSubpage;
aastore
19: iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
arraylength
if_icmplt 18
end local 7 21: aload 0
iload 4
bipush 9
isub
putfield io.netty.buffer.PoolArena.numSmallSubpagePools:I
22: aload 0
aload 0
aload 0
getfield io.netty.buffer.PoolArena.numSmallSubpagePools:I
invokevirtual io.netty.buffer.PoolArena.newSubpagePoolArray:(I)[Lio/netty/buffer/PoolSubpage;
putfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
23: iconst_0
istore 7
start local 7 24: goto 27
25: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
iload 7
aload 0
iload 2
invokevirtual io.netty.buffer.PoolArena.newSubpagePoolHead:(I)Lio/netty/buffer/PoolSubpage;
aastore
26: iinc 7 1
StackMap locals:
StackMap stack:
27: iload 7
aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
arraylength
if_icmplt 25
end local 7 28: aload 0
new io.netty.buffer.PoolChunkList
dup
aload 0
aconst_null
bipush 100
ldc 2147483647
iload 5
invokespecial io.netty.buffer.PoolChunkList.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunkList;III)V
putfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
29: aload 0
new io.netty.buffer.PoolChunkList
dup
aload 0
aload 0
getfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
bipush 75
bipush 100
iload 5
invokespecial io.netty.buffer.PoolChunkList.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunkList;III)V
putfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
30: aload 0
new io.netty.buffer.PoolChunkList
dup
aload 0
aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
bipush 50
bipush 100
iload 5
invokespecial io.netty.buffer.PoolChunkList.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunkList;III)V
putfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
31: aload 0
new io.netty.buffer.PoolChunkList
dup
aload 0
aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
bipush 25
bipush 75
iload 5
invokespecial io.netty.buffer.PoolChunkList.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunkList;III)V
putfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
32: aload 0
new io.netty.buffer.PoolChunkList
dup
aload 0
aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
iconst_1
bipush 50
iload 5
invokespecial io.netty.buffer.PoolChunkList.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunkList;III)V
putfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
33: aload 0
new io.netty.buffer.PoolChunkList
dup
aload 0
aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
ldc -2147483648
bipush 25
iload 5
invokespecial io.netty.buffer.PoolChunkList.<init>:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunkList;III)V
putfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
34: aload 0
getfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
invokevirtual io.netty.buffer.PoolChunkList.prevList:(Lio/netty/buffer/PoolChunkList;)V
35: aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
invokevirtual io.netty.buffer.PoolChunkList.prevList:(Lio/netty/buffer/PoolChunkList;)V
36: aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
invokevirtual io.netty.buffer.PoolChunkList.prevList:(Lio/netty/buffer/PoolChunkList;)V
37: aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
invokevirtual io.netty.buffer.PoolChunkList.prevList:(Lio/netty/buffer/PoolChunkList;)V
38: aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
aconst_null
invokevirtual io.netty.buffer.PoolChunkList.prevList:(Lio/netty/buffer/PoolChunkList;)V
39: aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
invokevirtual io.netty.buffer.PoolChunkList.prevList:(Lio/netty/buffer/PoolChunkList;)V
40: new java.util.ArrayList
dup
bipush 6
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 41: aload 7
aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
42: aload 7
aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
43: aload 7
aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
44: aload 7
aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
45: aload 7
aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
46: aload 7
aload 0
getfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
47: aload 0
aload 7
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield io.netty.buffer.PoolArena.chunkListMetrics:Ljava/util/List;
48: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lio/netty/buffer/PoolArena<TT;>;
0 49 1 parent Lio/netty/buffer/PooledByteBufAllocator;
0 49 2 pageSize I
0 49 3 maxOrder I
0 49 4 pageShifts I
0 49 5 chunkSize I
0 49 6 cacheAlignment I
17 21 7 i I
24 28 7 i I
41 49 7 metrics Ljava/util/List<Lio/netty/buffer/PoolChunkListMetric;>;
MethodParameters:
Name Flags
parent
pageSize
maxOrder
pageShifts
chunkSize
cacheAlignment
private io.netty.buffer.PoolSubpage<T> newSubpagePoolHead(int);
descriptor: (I)Lio/netty/buffer/PoolSubpage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new io.netty.buffer.PoolSubpage
dup
iload 1
invokespecial io.netty.buffer.PoolSubpage.<init>:(I)V
astore 2
start local 2 1: aload 2
aload 2
putfield io.netty.buffer.PoolSubpage.prev:Lio/netty/buffer/PoolSubpage;
2: aload 2
aload 2
putfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/buffer/PoolArena<TT;>;
0 4 1 pageSize I
1 4 2 head Lio/netty/buffer/PoolSubpage<TT;>;
Signature: (I)Lio/netty/buffer/PoolSubpage<TT;>;
MethodParameters:
Name Flags
pageSize
private io.netty.buffer.PoolSubpage<T>[] newSubpagePoolArray(int);
descriptor: (I)[Lio/netty/buffer/PoolSubpage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
anewarray io.netty.buffer.PoolSubpage
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
0 1 1 size I
Signature: (I)[Lio/netty/buffer/PoolSubpage<TT;>;
MethodParameters:
Name Flags
size
abstract boolean isDirect();
descriptor: ()Z
flags: (0x0400) ACC_ABSTRACT
io.netty.buffer.PooledByteBuf<T> allocate(io.netty.buffer.PoolThreadCache, int, int);
descriptor: (Lio/netty/buffer/PoolThreadCache;II)Lio/netty/buffer/PooledByteBuf;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
invokevirtual io.netty.buffer.PoolArena.newByteBuf:(I)Lio/netty/buffer/PooledByteBuf;
astore 4
start local 4 1: aload 0
aload 1
aload 4
iload 2
invokevirtual io.netty.buffer.PoolArena.allocate:(Lio/netty/buffer/PoolThreadCache;Lio/netty/buffer/PooledByteBuf;I)V
2: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/buffer/PoolArena<TT;>;
0 3 1 cache Lio/netty/buffer/PoolThreadCache;
0 3 2 reqCapacity I
0 3 3 maxCapacity I
1 3 4 buf Lio/netty/buffer/PooledByteBuf<TT;>;
Signature: (Lio/netty/buffer/PoolThreadCache;II)Lio/netty/buffer/PooledByteBuf<TT;>;
MethodParameters:
Name Flags
cache
reqCapacity
maxCapacity
static int tinyIdx(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_4
iushr
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 normCapacity I
MethodParameters:
Name Flags
normCapacity
static int smallIdx(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iload 0
bipush 10
iushr
istore 2
start local 2 2: goto 5
3: StackMap locals: int int
StackMap stack:
iload 2
iconst_1
iushr
istore 2
4: iinc 1 1
5: StackMap locals:
StackMap stack:
iload 2
ifne 3
6: iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 normCapacity I
1 7 1 tableIdx I
2 7 2 i I
MethodParameters:
Name Flags
normCapacity
boolean isTinyOrSmall(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield io.netty.buffer.PoolArena.subpageOverflowMask:I
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/buffer/PoolArena<TT;>;
0 2 1 normCapacity I
MethodParameters:
Name Flags
normCapacity
static boolean isTiny(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
sipush -512
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 normCapacity I
MethodParameters:
Name Flags
normCapacity
private void allocate(io.netty.buffer.PoolThreadCache, io.netty.buffer.PooledByteBuf<T>, );
descriptor: (Lio/netty/buffer/PoolThreadCache;Lio/netty/buffer/PooledByteBuf;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
invokevirtual io.netty.buffer.PoolArena.normalizeCapacity:(I)I
istore 4
start local 4 1: aload 0
iload 4
invokevirtual io.netty.buffer.PoolArena.isTinyOrSmall:(I)Z
ifeq 37
2: iload 4
invokestatic io.netty.buffer.PoolArena.isTiny:(I)Z
istore 7
start local 7 3: iload 7
ifeq 9
4: aload 1
aload 0
aload 2
iload 3
iload 4
invokevirtual io.netty.buffer.PoolThreadCache.allocateTiny:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PooledByteBuf;II)Z
ifeq 6
5: return
6: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolThreadCache io.netty.buffer.PooledByteBuf int int top top int
StackMap stack:
iload 4
invokestatic io.netty.buffer.PoolArena.tinyIdx:(I)I
istore 5
start local 5 7: aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
astore 6
start local 6 8: goto 13
end local 6 end local 5 9: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 2
iload 3
iload 4
invokevirtual io.netty.buffer.PoolThreadCache.allocateSmall:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PooledByteBuf;II)Z
ifeq 11
10: return
11: StackMap locals:
StackMap stack:
iload 4
invokestatic io.netty.buffer.PoolArena.smallIdx:(I)I
istore 5
start local 5 12: aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
astore 6
start local 6 13: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolThreadCache io.netty.buffer.PooledByteBuf int int int io.netty.buffer.PoolSubpage[] int
StackMap stack:
aload 6
iload 5
aaload
astore 8
start local 8 14: aload 8
dup
astore 9
monitorenter
15: aload 8
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
astore 10
start local 10 16: aload 10
aload 8
if_acmpeq 25
17: getstatic io.netty.buffer.PoolArena.$assertionsDisabled:Z
ifne 19
aload 10
getfield io.netty.buffer.PoolSubpage.doNotDestroy:Z
ifeq 18
aload 10
getfield io.netty.buffer.PoolSubpage.elemSize:I
iload 4
if_icmpeq 19
StackMap locals: io.netty.buffer.PoolSubpage io.netty.buffer.PoolSubpage io.netty.buffer.PoolSubpage
StackMap stack:
18: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 10
invokevirtual io.netty.buffer.PoolSubpage.allocate:()J
lstore 11
start local 11 20: getstatic io.netty.buffer.PoolArena.$assertionsDisabled:Z
ifne 21
lload 11
lconst_0
lcmp
ifge 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals: long
StackMap stack:
aload 10
getfield io.netty.buffer.PoolSubpage.chunk:Lio/netty/buffer/PoolChunk;
aload 2
lload 11
iload 3
invokevirtual io.netty.buffer.PoolChunk.initBufWithSubpage:(Lio/netty/buffer/PooledByteBuf;JI)V
22: aload 0
iload 7
invokevirtual io.netty.buffer.PoolArena.incTinySmallAllocation:(Z)V
23: aload 9
monitorexit
24: return
end local 11 end local 10 25: StackMap locals:
StackMap stack:
aload 9
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 9
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
aload 0
dup
astore 9
monitorenter
30: aload 0
aload 2
iload 3
iload 4
invokevirtual io.netty.buffer.PoolArena.allocateNormal:(Lio/netty/buffer/PooledByteBuf;II)V
31: aload 9
monitorexit
32: goto 35
StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolThreadCache io.netty.buffer.PooledByteBuf int int int io.netty.buffer.PoolSubpage[] int io.netty.buffer.PoolSubpage io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
33: aload 9
monitorexit
34: athrow
35: StackMap locals:
StackMap stack:
aload 0
iload 7
invokevirtual io.netty.buffer.PoolArena.incTinySmallAllocation:(Z)V
36: return
end local 8 end local 7 end local 6 end local 5 37: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolThreadCache io.netty.buffer.PooledByteBuf int int
StackMap stack:
iload 4
aload 0
getfield io.netty.buffer.PoolArena.chunkSize:I
if_icmpgt 47
38: aload 1
aload 0
aload 2
iload 3
iload 4
invokevirtual io.netty.buffer.PoolThreadCache.allocateNormal:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PooledByteBuf;II)Z
ifeq 40
39: return
40: StackMap locals:
StackMap stack:
aload 0
dup
astore 5
monitorenter
41: aload 0
aload 2
iload 3
iload 4
invokevirtual io.netty.buffer.PoolArena.allocateNormal:(Lio/netty/buffer/PooledByteBuf;II)V
42: aload 0
dup
getfield io.netty.buffer.PoolArena.allocationsNormal:J
lconst_1
ladd
putfield io.netty.buffer.PoolArena.allocationsNormal:J
43: aload 5
monitorexit
44: goto 48
StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolThreadCache io.netty.buffer.PooledByteBuf int int io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
45: aload 5
monitorexit
46: athrow
47: StackMap locals:
StackMap stack:
aload 0
aload 2
iload 3
invokevirtual io.netty.buffer.PoolArena.allocateHuge:(Lio/netty/buffer/PooledByteBuf;I)V
48: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lio/netty/buffer/PoolArena<TT;>;
0 49 1 cache Lio/netty/buffer/PoolThreadCache;
0 49 2 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 49 3 reqCapacity I
1 49 4 normCapacity I
7 9 5 tableIdx I
12 37 5 tableIdx I
8 9 6 table [Lio/netty/buffer/PoolSubpage;
13 37 6 table [Lio/netty/buffer/PoolSubpage;
3 37 7 tiny Z
14 37 8 head Lio/netty/buffer/PoolSubpage<TT;>;
16 25 10 s Lio/netty/buffer/PoolSubpage<TT;>;
20 25 11 handle J
Exception table:
from to target type
15 24 27 any
25 26 27 any
27 28 27 any
30 32 33 any
33 34 33 any
41 44 45 any
45 46 45 any
Signature: (Lio/netty/buffer/PoolThreadCache;Lio/netty/buffer/PooledByteBuf<TT;>;I)V
MethodParameters:
Name Flags
cache
buf
reqCapacity final
private void allocateNormal(io.netty.buffer.PooledByteBuf<T>, int, );
descriptor: (Lio/netty/buffer/PooledByteBuf;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
aload 1
iload 2
iload 3
invokevirtual io.netty.buffer.PoolChunkList.allocate:(Lio/netty/buffer/PooledByteBuf;II)Z
ifne 3
aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
aload 1
iload 2
iload 3
invokevirtual io.netty.buffer.PoolChunkList.allocate:(Lio/netty/buffer/PooledByteBuf;II)Z
ifne 3
1: aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
aload 1
iload 2
iload 3
invokevirtual io.netty.buffer.PoolChunkList.allocate:(Lio/netty/buffer/PooledByteBuf;II)Z
ifne 3
aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
aload 1
iload 2
iload 3
invokevirtual io.netty.buffer.PoolChunkList.allocate:(Lio/netty/buffer/PooledByteBuf;II)Z
ifne 3
2: aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
aload 1
iload 2
iload 3
invokevirtual io.netty.buffer.PoolChunkList.allocate:(Lio/netty/buffer/PooledByteBuf;II)Z
ifeq 4
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.netty.buffer.PoolArena.pageSize:I
aload 0
getfield io.netty.buffer.PoolArena.maxOrder:I
aload 0
getfield io.netty.buffer.PoolArena.pageShifts:I
aload 0
getfield io.netty.buffer.PoolArena.chunkSize:I
invokevirtual io.netty.buffer.PoolArena.newChunk:(IIII)Lio/netty/buffer/PoolChunk;
astore 4
start local 4 5: aload 4
iload 3
invokevirtual io.netty.buffer.PoolChunk.allocate:(I)J
lstore 5
start local 5 6: getstatic io.netty.buffer.PoolArena.$assertionsDisabled:Z
ifne 7
lload 5
lconst_0
lcmp
ifgt 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: io.netty.buffer.PoolChunk long
StackMap stack:
aload 4
aload 1
lload 5
iload 2
invokevirtual io.netty.buffer.PoolChunk.initBuf:(Lio/netty/buffer/PooledByteBuf;JI)V
8: aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
aload 4
invokevirtual io.netty.buffer.PoolChunkList.add:(Lio/netty/buffer/PoolChunk;)V
9: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/buffer/PoolArena<TT;>;
0 10 1 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 10 2 reqCapacity I
0 10 3 normCapacity I
5 10 4 c Lio/netty/buffer/PoolChunk<TT;>;
6 10 5 handle J
Signature: (Lio/netty/buffer/PooledByteBuf<TT;>;II)V
MethodParameters:
Name Flags
buf
reqCapacity
normCapacity
private void incTinySmallAllocation(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 3
1: aload 0
getfield io.netty.buffer.PoolArena.allocationsTiny:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.increment:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.allocationsSmall:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.increment:()V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/buffer/PoolArena<TT;>;
0 5 1 tiny Z
MethodParameters:
Name Flags
tiny
private void allocateHuge(io.netty.buffer.PooledByteBuf<T>, );
descriptor: (Lio/netty/buffer/PooledByteBuf;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 2
invokevirtual io.netty.buffer.PoolArena.newUnpooledChunk:(I)Lio/netty/buffer/PoolChunk;
astore 3
start local 3 1: aload 0
getfield io.netty.buffer.PoolArena.activeBytesHuge:Lio/netty/util/internal/LongCounter;
aload 3
invokevirtual io.netty.buffer.PoolChunk.chunkSize:()I
i2l
invokeinterface io.netty.util.internal.LongCounter.add:(J)V
2: aload 1
aload 3
iload 2
invokevirtual io.netty.buffer.PooledByteBuf.initUnpooled:(Lio/netty/buffer/PoolChunk;I)V
3: aload 0
getfield io.netty.buffer.PoolArena.allocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.increment:()V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/buffer/PoolArena<TT;>;
0 5 1 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 5 2 reqCapacity I
1 5 3 chunk Lio/netty/buffer/PoolChunk<TT;>;
Signature: (Lio/netty/buffer/PooledByteBuf<TT;>;I)V
MethodParameters:
Name Flags
buf
reqCapacity
void free(io.netty.buffer.PoolChunk<T>, long, int, io.netty.buffer.PoolThreadCache);
descriptor: (Lio/netty/buffer/PoolChunk;JILio/netty/buffer/PoolThreadCache;)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 1
getfield io.netty.buffer.PoolChunk.unpooled:Z
ifeq 6
1: aload 1
invokevirtual io.netty.buffer.PoolChunk.chunkSize:()I
istore 6
start local 6 2: aload 0
aload 1
invokevirtual io.netty.buffer.PoolArena.destroyChunk:(Lio/netty/buffer/PoolChunk;)V
3: aload 0
getfield io.netty.buffer.PoolArena.activeBytesHuge:Lio/netty/util/internal/LongCounter;
iload 6
ineg
i2l
invokeinterface io.netty.util.internal.LongCounter.add:(J)V
4: aload 0
getfield io.netty.buffer.PoolArena.deallocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.increment:()V
end local 6 5: goto 10
6: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual io.netty.buffer.PoolArena.sizeClass:(I)Lio/netty/buffer/PoolArena$SizeClass;
astore 6
start local 6 7: aload 5
ifnull 9
aload 5
aload 0
aload 1
lload 2
iload 4
aload 6
invokevirtual io.netty.buffer.PoolThreadCache.add:(Lio/netty/buffer/PoolArena;Lio/netty/buffer/PoolChunk;JILio/netty/buffer/PoolArena$SizeClass;)Z
ifeq 9
8: return
9: StackMap locals: io.netty.buffer.PoolArena$SizeClass
StackMap stack:
aload 0
aload 1
lload 2
aload 6
invokevirtual io.netty.buffer.PoolArena.freeChunk:(Lio/netty/buffer/PoolChunk;JLio/netty/buffer/PoolArena$SizeClass;)V
end local 6 10: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/buffer/PoolArena<TT;>;
0 11 1 chunk Lio/netty/buffer/PoolChunk<TT;>;
0 11 2 handle J
0 11 4 normCapacity I
0 11 5 cache Lio/netty/buffer/PoolThreadCache;
2 5 6 size I
7 10 6 sizeClass Lio/netty/buffer/PoolArena$SizeClass;
Signature: (Lio/netty/buffer/PoolChunk<TT;>;JILio/netty/buffer/PoolThreadCache;)V
MethodParameters:
Name Flags
chunk
handle
normCapacity
cache
private io.netty.buffer.PoolArena$SizeClass sizeClass(int);
descriptor: (I)Lio/netty/buffer/PoolArena$SizeClass;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual io.netty.buffer.PoolArena.isTinyOrSmall:(I)Z
ifne 2
1: getstatic io.netty.buffer.PoolArena$SizeClass.Normal:Lio/netty/buffer/PoolArena$SizeClass;
areturn
2: StackMap locals:
StackMap stack:
iload 1
invokestatic io.netty.buffer.PoolArena.isTiny:(I)Z
ifeq 3
getstatic io.netty.buffer.PoolArena$SizeClass.Tiny:Lio/netty/buffer/PoolArena$SizeClass;
goto 4
StackMap locals:
StackMap stack:
3: getstatic io.netty.buffer.PoolArena$SizeClass.Small:Lio/netty/buffer/PoolArena$SizeClass;
StackMap locals:
StackMap stack: io.netty.buffer.PoolArena$SizeClass
4: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/buffer/PoolArena<TT;>;
0 5 1 normCapacity I
Signature: (I)Lio/netty/buffer/PoolArena$SizeClass;
MethodParameters:
Name Flags
normCapacity
void freeChunk(io.netty.buffer.PoolChunk<T>, long, io.netty.buffer.PoolArena$SizeClass);
descriptor: (Lio/netty/buffer/PoolChunk;JLio/netty/buffer/PoolArena$SizeClass;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
dup
astore 6
monitorenter
1: invokestatic io.netty.buffer.PoolArena.$SWITCH_TABLE$io$netty$buffer$PoolArena$SizeClass:()[I
aload 4
invokevirtual io.netty.buffer.PoolArena$SizeClass.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 6
2: 4
3: 2
default: 8
}
2: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolChunk long io.netty.buffer.PoolArena$SizeClass top io.netty.buffer.PoolArena
StackMap stack:
aload 0
dup
getfield io.netty.buffer.PoolArena.deallocationsNormal:J
lconst_1
ladd
putfield io.netty.buffer.PoolArena.deallocationsNormal:J
3: goto 9
4: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.netty.buffer.PoolArena.deallocationsSmall:J
lconst_1
ladd
putfield io.netty.buffer.PoolArena.deallocationsSmall:J
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.netty.buffer.PoolArena.deallocationsTiny:J
lconst_1
ladd
putfield io.netty.buffer.PoolArena.deallocationsTiny:J
7: goto 9
8: StackMap locals:
StackMap stack:
new java.lang.Error
dup
invokespecial java.lang.Error.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 1
getfield io.netty.buffer.PoolChunk.parent:Lio/netty/buffer/PoolChunkList;
aload 1
lload 2
invokevirtual io.netty.buffer.PoolChunkList.free:(Lio/netty/buffer/PoolChunk;J)Z
ifeq 10
iconst_0
goto 11
StackMap locals:
StackMap stack:
10: iconst_1
StackMap locals:
StackMap stack: int
11: istore 5
start local 5 12: aload 6
monitorexit
13: goto 16
end local 5 StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 6
monitorexit
15: athrow
start local 5 16: StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolChunk long io.netty.buffer.PoolArena$SizeClass int
StackMap stack:
iload 5
ifeq 18
17: aload 0
aload 1
invokevirtual io.netty.buffer.PoolArena.destroyChunk:(Lio/netty/buffer/PoolChunk;)V
18: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/netty/buffer/PoolArena<TT;>;
0 19 1 chunk Lio/netty/buffer/PoolChunk<TT;>;
0 19 2 handle J
0 19 4 sizeClass Lio/netty/buffer/PoolArena$SizeClass;
12 14 5 destroyChunk Z
16 19 5 destroyChunk Z
Exception table:
from to target type
1 13 14 any
14 15 14 any
Signature: (Lio/netty/buffer/PoolChunk<TT;>;JLio/netty/buffer/PoolArena$SizeClass;)V
MethodParameters:
Name Flags
chunk
handle
sizeClass
io.netty.buffer.PoolSubpage<T> findSubpagePoolHead(int);
descriptor: (I)Lio/netty/buffer/PoolSubpage;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: iload 1
invokestatic io.netty.buffer.PoolArena.isTiny:(I)Z
ifeq 4
1: iload 1
iconst_4
iushr
istore 2
start local 2 2: aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
astore 3
start local 3 3: goto 11
end local 3 end local 2 4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: iload 1
bipush 10
iushr
istore 1
6: goto 9
7: StackMap locals: int
StackMap stack:
iload 1
iconst_1
iushr
istore 1
8: iinc 2 1
9: StackMap locals:
StackMap stack:
iload 1
ifne 7
10: aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
astore 3
start local 3 11: StackMap locals: io.netty.buffer.PoolSubpage[]
StackMap stack:
aload 3
iload 2
aaload
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/buffer/PoolArena<TT;>;
0 12 1 elemSize I
2 4 2 tableIdx I
5 12 2 tableIdx I
3 4 3 table [Lio/netty/buffer/PoolSubpage;
11 12 3 table [Lio/netty/buffer/PoolSubpage;
Signature: (I)Lio/netty/buffer/PoolSubpage<TT;>;
MethodParameters:
Name Flags
elemSize
int normalizeCapacity(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifge 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "capacity: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (expected: 0+)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield io.netty.buffer.PoolArena.chunkSize:I
if_icmplt 6
3: aload 0
getfield io.netty.buffer.PoolArena.directMemoryCacheAlignment:I
ifne 4
iload 1
goto 5
StackMap locals:
StackMap stack:
4: aload 0
iload 1
invokevirtual io.netty.buffer.PoolArena.alignCapacity:(I)I
StackMap locals:
StackMap stack: int
5: ireturn
6: StackMap locals:
StackMap stack:
iload 1
invokestatic io.netty.buffer.PoolArena.isTiny:(I)Z
ifne 19
7: iload 1
istore 2
start local 2 8: iinc 2 -1
9: iload 2
iload 2
iconst_1
iushr
ior
istore 2
10: iload 2
iload 2
iconst_2
iushr
ior
istore 2
11: iload 2
iload 2
iconst_4
iushr
ior
istore 2
12: iload 2
iload 2
bipush 8
iushr
ior
istore 2
13: iload 2
iload 2
bipush 16
iushr
ior
istore 2
14: iinc 2 1
15: iload 2
ifge 17
16: iload 2
iconst_1
iushr
istore 2
17: StackMap locals: int
StackMap stack:
getstatic io.netty.buffer.PoolArena.$assertionsDisabled:Z
ifne 18
aload 0
getfield io.netty.buffer.PoolArena.directMemoryCacheAlignment:I
ifeq 18
iload 2
aload 0
getfield io.netty.buffer.PoolArena.directMemoryCacheAlignmentMask:I
iand
ifeq 18
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 19: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.directMemoryCacheAlignment:I
ifle 21
20: aload 0
iload 1
invokevirtual io.netty.buffer.PoolArena.alignCapacity:(I)I
ireturn
21: StackMap locals:
StackMap stack:
iload 1
bipush 15
iand
ifne 23
22: iload 1
ireturn
23: StackMap locals:
StackMap stack:
iload 1
bipush -16
iand
bipush 16
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/netty/buffer/PoolArena<TT;>;
0 24 1 reqCapacity I
8 19 2 normalizedCapacity I
MethodParameters:
Name Flags
reqCapacity
int alignCapacity(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield io.netty.buffer.PoolArena.directMemoryCacheAlignmentMask:I
iand
istore 2
start local 2 1: iload 2
ifne 2
iload 1
goto 3
StackMap locals: int
StackMap stack:
2: iload 1
aload 0
getfield io.netty.buffer.PoolArena.directMemoryCacheAlignment:I
iadd
iload 2
isub
StackMap locals:
StackMap stack: int
3: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/buffer/PoolArena<TT;>;
0 4 1 reqCapacity I
1 4 2 delta I
MethodParameters:
Name Flags
reqCapacity
void reallocate(io.netty.buffer.PooledByteBuf<T>, int, );
descriptor: (Lio/netty/buffer/PooledByteBuf;IZ)V
flags: (0x0000)
Code:
stack=7, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iflt 1
iload 2
aload 1
invokevirtual io.netty.buffer.PooledByteBuf.maxCapacity:()I
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "newCapacity: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
getfield io.netty.buffer.PooledByteBuf.length:I
istore 4
start local 4 3: iload 4
iload 2
if_icmpne 5
4: return
5: StackMap locals: int
StackMap stack:
aload 1
getfield io.netty.buffer.PooledByteBuf.chunk:Lio/netty/buffer/PoolChunk;
astore 5
start local 5 6: aload 1
getfield io.netty.buffer.PooledByteBuf.handle:J
lstore 6
start local 6 7: aload 1
getfield io.netty.buffer.PooledByteBuf.memory:Ljava/lang/Object;
astore 8
start local 8 8: aload 1
getfield io.netty.buffer.PooledByteBuf.offset:I
istore 9
start local 9 9: aload 1
getfield io.netty.buffer.PooledByteBuf.maxLength:I
istore 10
start local 10 10: aload 1
invokevirtual io.netty.buffer.PooledByteBuf.readerIndex:()I
istore 11
start local 11 11: aload 1
invokevirtual io.netty.buffer.PooledByteBuf.writerIndex:()I
istore 12
start local 12 12: aload 0
aload 0
getfield io.netty.buffer.PoolArena.parent:Lio/netty/buffer/PooledByteBufAllocator;
invokevirtual io.netty.buffer.PooledByteBufAllocator.threadCache:()Lio/netty/buffer/PoolThreadCache;
aload 1
iload 2
invokevirtual io.netty.buffer.PoolArena.allocate:(Lio/netty/buffer/PoolThreadCache;Lio/netty/buffer/PooledByteBuf;I)V
13: iload 2
iload 4
if_icmple 19
14: aload 0
15: aload 8
iload 9
16: aload 1
getfield io.netty.buffer.PooledByteBuf.memory:Ljava/lang/Object;
aload 1
getfield io.netty.buffer.PooledByteBuf.offset:I
iload 4
17: invokevirtual io.netty.buffer.PoolArena.memoryCopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: goto 29
StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PooledByteBuf int int int io.netty.buffer.PoolChunk long java.lang.Object int int int int
StackMap stack:
19: iload 2
iload 4
if_icmpge 29
20: iload 11
iload 2
if_icmpge 28
21: iload 12
iload 2
if_icmple 23
22: iload 2
istore 12
23: StackMap locals:
StackMap stack:
aload 0
24: aload 8
iload 9
iload 11
iadd
25: aload 1
getfield io.netty.buffer.PooledByteBuf.memory:Ljava/lang/Object;
aload 1
getfield io.netty.buffer.PooledByteBuf.offset:I
iload 11
iadd
iload 12
iload 11
isub
26: invokevirtual io.netty.buffer.PoolArena.memoryCopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: goto 29
28: StackMap locals:
StackMap stack:
iload 2
dup
istore 12
istore 11
29: StackMap locals:
StackMap stack:
aload 1
iload 11
iload 12
invokevirtual io.netty.buffer.PooledByteBuf.setIndex:(II)Lio/netty/buffer/ByteBuf;
pop
30: iload 3
ifeq 32
31: aload 0
aload 5
lload 6
iload 10
aload 1
getfield io.netty.buffer.PooledByteBuf.cache:Lio/netty/buffer/PoolThreadCache;
invokevirtual io.netty.buffer.PoolArena.free:(Lio/netty/buffer/PoolChunk;JILio/netty/buffer/PoolThreadCache;)V
32: StackMap locals:
StackMap stack:
return
end local 12 end local 11 end local 10 end local 9 end local 8 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lio/netty/buffer/PoolArena<TT;>;
0 33 1 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 33 2 newCapacity I
0 33 3 freeOldMemory Z
3 33 4 oldCapacity I
6 33 5 oldChunk Lio/netty/buffer/PoolChunk<TT;>;
7 33 6 oldHandle J
8 33 8 oldMemory TT;
9 33 9 oldOffset I
10 33 10 oldMaxLength I
11 33 11 readerIndex I
12 33 12 writerIndex I
Signature: (Lio/netty/buffer/PooledByteBuf<TT;>;IZ)V
MethodParameters:
Name Flags
buf
newCapacity
freeOldMemory
public int numThreadCaches();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.numThreadCaches:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public int numTinySubpages();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public int numSmallSubpages();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public int numChunkLists();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.chunkListMetrics:Ljava/util/List;
invokeinterface java.util.List.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public java.util.List<io.netty.buffer.PoolSubpageMetric> tinySubpages();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.subPageMetricList:([Lio/netty/buffer/PoolSubpage;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
Signature: ()Ljava/util/List<Lio/netty/buffer/PoolSubpageMetric;>;
public java.util.List<io.netty.buffer.PoolSubpageMetric> smallSubpages();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.subPageMetricList:([Lio/netty/buffer/PoolSubpage;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
Signature: ()Ljava/util/List<Lio/netty/buffer/PoolSubpageMetric;>;
public java.util.List<io.netty.buffer.PoolChunkListMetric> chunkLists();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.chunkListMetrics:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
Signature: ()Ljava/util/List<Lio/netty/buffer/PoolChunkListMetric;>;
private static java.util.List<io.netty.buffer.PoolSubpageMetric> subPageMetricList(io.netty.buffer.PoolSubpage<?>[]);
descriptor: ([Lio/netty/buffer/PoolSubpage;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 10
StackMap locals: io.netty.buffer.PoolSubpage[] java.util.List top int int io.netty.buffer.PoolSubpage[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
aload 2
if_acmpne 5
4: goto 9
5: StackMap locals: io.netty.buffer.PoolSubpage[] java.util.List io.netty.buffer.PoolSubpage int int io.netty.buffer.PoolSubpage[]
StackMap stack:
aload 2
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
astore 6
start local 6 6: StackMap locals: io.netty.buffer.PoolSubpage
StackMap stack:
aload 1
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 6
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
astore 6
8: aload 6
aload 2
if_acmpne 6
end local 6 end local 2 9: StackMap locals: io.netty.buffer.PoolSubpage[] java.util.List top int int io.netty.buffer.PoolSubpage[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 4
if_icmplt 2
11: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 pages [Lio/netty/buffer/PoolSubpage;
1 12 1 metrics Ljava/util/List<Lio/netty/buffer/PoolSubpageMetric;>;
3 9 2 head Lio/netty/buffer/PoolSubpage<*>;
6 9 6 s Lio/netty/buffer/PoolSubpage<*>;
Signature: ([Lio/netty/buffer/PoolSubpage<*>;)Ljava/util/List<Lio/netty/buffer/PoolSubpageMetric;>;
MethodParameters:
Name Flags
pages
public long numAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield io.netty.buffer.PoolArena.allocationsNormal:J
lstore 1
start local 1 2: aload 3
monitorexit
3: goto 6
end local 1 StackMap locals: io.netty.buffer.PoolArena top top io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 1 6: StackMap locals: io.netty.buffer.PoolArena long
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.allocationsTiny:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
aload 0
getfield io.netty.buffer.PoolArena.allocationsSmall:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
ladd
lload 1
ladd
aload 0
getfield io.netty.buffer.PoolArena.allocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
ladd
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/buffer/PoolArena<TT;>;
2 4 1 allocsNormal J
6 7 1 allocsNormal J
Exception table:
from to target type
1 3 4 any
4 5 4 any
public long numTinyAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.allocationsTiny:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numSmallAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.allocationsSmall:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public synchronized long numNormalAllocations();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.allocationsNormal:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numDeallocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield io.netty.buffer.PoolArena.deallocationsTiny:J
aload 0
getfield io.netty.buffer.PoolArena.deallocationsSmall:J
ladd
aload 0
getfield io.netty.buffer.PoolArena.deallocationsNormal:J
ladd
lstore 1
start local 1 2: aload 3
monitorexit
3: goto 6
end local 1 StackMap locals: io.netty.buffer.PoolArena top top io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 1 6: StackMap locals: io.netty.buffer.PoolArena long
StackMap stack:
lload 1
aload 0
getfield io.netty.buffer.PoolArena.deallocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
ladd
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/buffer/PoolArena<TT;>;
2 4 1 deallocs J
6 7 1 deallocs J
Exception table:
from to target type
1 3 4 any
4 5 4 any
public synchronized long numTinyDeallocations();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.deallocationsTiny:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public synchronized long numSmallDeallocations();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.deallocationsSmall:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public synchronized long numNormalDeallocations();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.deallocationsNormal:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numHugeAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.allocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numHugeDeallocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.deallocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numActiveAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.allocationsTiny:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
aload 0
getfield io.netty.buffer.PoolArena.allocationsSmall:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
ladd
aload 0
getfield io.netty.buffer.PoolArena.allocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
ladd
1: aload 0
getfield io.netty.buffer.PoolArena.deallocationsHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
2: lsub
lstore 1
start local 1 3: aload 0
dup
astore 3
monitorenter
4: lload 1
aload 0
getfield io.netty.buffer.PoolArena.allocationsNormal:J
aload 0
getfield io.netty.buffer.PoolArena.deallocationsTiny:J
aload 0
getfield io.netty.buffer.PoolArena.deallocationsSmall:J
ladd
aload 0
getfield io.netty.buffer.PoolArena.deallocationsNormal:J
ladd
lsub
ladd
lstore 1
5: aload 3
monitorexit
6: goto 9
StackMap locals: io.netty.buffer.PoolArena long io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
lload 1
lconst_0
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/buffer/PoolArena<TT;>;
3 10 1 val J
Exception table:
from to target type
4 6 7 any
7 8 7 any
public long numActiveTinyAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.PoolArena.numTinyAllocations:()J
aload 0
invokevirtual io.netty.buffer.PoolArena.numTinyDeallocations:()J
lsub
lconst_0
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numActiveSmallAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.PoolArena.numSmallAllocations:()J
aload 0
invokevirtual io.netty.buffer.PoolArena.numSmallDeallocations:()J
lsub
lconst_0
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numActiveNormalAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield io.netty.buffer.PoolArena.allocationsNormal:J
aload 0
getfield io.netty.buffer.PoolArena.deallocationsNormal:J
lsub
lstore 1
start local 1 2: aload 3
monitorexit
3: goto 6
end local 1 StackMap locals: io.netty.buffer.PoolArena top top io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 1 6: StackMap locals: io.netty.buffer.PoolArena long
StackMap stack:
lload 1
lconst_0
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/buffer/PoolArena<TT;>;
2 4 1 val J
6 7 1 val J
Exception table:
from to target type
1 3 4 any
4 5 4 any
public long numActiveHugeAllocations();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.PoolArena.numHugeAllocations:()J
aload 0
invokevirtual io.netty.buffer.PoolArena.numHugeDeallocations:()J
lsub
lconst_0
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolArena<TT;>;
public long numActiveBytes();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolArena.activeBytesHuge:Lio/netty/util/internal/LongCounter;
invokeinterface io.netty.util.internal.LongCounter.value:()J
lstore 1
start local 1 1: aload 0
dup
astore 3
monitorenter
2: iconst_0
istore 4
start local 4 3: goto 9
4: StackMap locals: long io.netty.buffer.PoolArena int
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.chunkListMetrics:Ljava/util/List;
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.netty.buffer.PoolChunkListMetric
invokeinterface io.netty.buffer.PoolChunkListMetric.iterator:()Ljava/util/Iterator;
astore 6
goto 7
StackMap locals: io.netty.buffer.PoolArena long io.netty.buffer.PoolArena int top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.buffer.PoolChunkMetric
astore 5
start local 5 6: lload 1
aload 5
invokeinterface io.netty.buffer.PoolChunkMetric.chunkSize:()I
i2l
ladd
lstore 1
end local 5 7: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: iinc 4 1
StackMap locals: io.netty.buffer.PoolArena long io.netty.buffer.PoolArena int
StackMap stack:
9: iload 4
aload 0
getfield io.netty.buffer.PoolArena.chunkListMetrics:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 4
end local 4 10: aload 3
monitorexit
11: goto 14
StackMap locals: io.netty.buffer.PoolArena long io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
lconst_0
lload 1
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/netty/buffer/PoolArena<TT;>;
1 15 1 val J
3 10 4 i I
6 7 5 m Lio/netty/buffer/PoolChunkMetric;
Exception table:
from to target type
2 11 12 any
12 13 12 any
protected abstract io.netty.buffer.PoolChunk<T> newChunk(int, int, int, int);
descriptor: (IIII)Lio/netty/buffer/PoolChunk;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (IIII)Lio/netty/buffer/PoolChunk<TT;>;
MethodParameters:
Name Flags
pageSize
maxOrder
pageShifts
chunkSize
protected abstract io.netty.buffer.PoolChunk<T> newUnpooledChunk(int);
descriptor: (I)Lio/netty/buffer/PoolChunk;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (I)Lio/netty/buffer/PoolChunk<TT;>;
MethodParameters:
Name Flags
capacity
protected abstract io.netty.buffer.PooledByteBuf<T> newByteBuf(int);
descriptor: (I)Lio/netty/buffer/PooledByteBuf;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (I)Lio/netty/buffer/PooledByteBuf<TT;>;
MethodParameters:
Name Flags
maxCapacity
protected abstract void memoryCopy(T, int, T, int, );
descriptor: (Ljava/lang/Object;ILjava/lang/Object;II)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (TT;ITT;II)V
MethodParameters:
Name Flags
src
srcOffset
dst
dstOffset
length
protected abstract void destroyChunk(io.netty.buffer.PoolChunk<T>);
descriptor: (Lio/netty/buffer/PoolChunk;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Lio/netty/buffer/PoolChunk<TT;>;)V
MethodParameters:
Name Flags
chunk
public synchronized java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
1: ldc "Chunk(s) at 0~25%:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc "Chunk(s) at 0~50%:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "Chunk(s) at 25~75%:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
12: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc "Chunk(s) at 50~100%:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
16: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc "Chunk(s) at 75~100%:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: ldc "Chunk(s) at 100%:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: aload 0
getfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
24: getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc "tiny subpages:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: astore 1
start local 1 27: aload 1
aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.appendPoolSubPages:(Ljava/lang/StringBuilder;[Lio/netty/buffer/PoolSubpage;)V
28: aload 1
getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
29: ldc "small subpages:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
30: aload 1
aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.appendPoolSubPages:(Ljava/lang/StringBuilder;[Lio/netty/buffer/PoolSubpage;)V
31: aload 1
getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lio/netty/buffer/PoolArena<TT;>;
27 33 1 buf Ljava/lang/StringBuilder;
private static void appendPoolSubPages(java.lang.StringBuilder, io.netty.buffer.PoolSubpage<?>[]);
descriptor: (Ljava/lang/StringBuilder;[Lio/netty/buffer/PoolSubpage;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 13
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 3: aload 3
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
aload 3
if_acmpne 5
4: goto 12
5: StackMap locals: io.netty.buffer.PoolSubpage
StackMap stack:
aload 0
getstatic io.netty.util.internal.StringUtil.NEWLINE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
7: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 3
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
astore 4
start local 4 9: StackMap locals: io.netty.buffer.PoolSubpage
StackMap stack:
aload 0
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
10: aload 4
getfield io.netty.buffer.PoolSubpage.next:Lio/netty/buffer/PoolSubpage;
astore 4
11: aload 4
aload 3
if_acmpne 9
end local 4 end local 3 12: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 1
arraylength
if_icmplt 2
end local 2 14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 buf Ljava/lang/StringBuilder;
0 15 1 subpages [Lio/netty/buffer/PoolSubpage;
1 14 2 i I
3 12 3 head Lio/netty/buffer/PoolSubpage<*>;
9 12 4 s Lio/netty/buffer/PoolSubpage<*>;
Signature: (Ljava/lang/StringBuilder;[Lio/netty/buffer/PoolSubpage<*>;)V
MethodParameters:
Name Flags
buf
subpages
protected final void finalize();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.finalize:()V
1: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.destroyPoolSubPages:([Lio/netty/buffer/PoolSubpage;)V
4: aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.destroyPoolSubPages:([Lio/netty/buffer/PoolSubpage;)V
5: aload 0
bipush 6
anewarray io.netty.buffer.PoolChunkList
dup
iconst_0
aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_1
aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_2
aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_3
aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_4
aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_5
aload 0
getfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
aastore
invokevirtual io.netty.buffer.PoolArena.destroyPoolChunkLists:([Lio/netty/buffer/PoolChunkList;)V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.buffer.PoolArena.smallSubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.destroyPoolSubPages:([Lio/netty/buffer/PoolSubpage;)V
8: aload 0
getfield io.netty.buffer.PoolArena.tinySubpagePools:[Lio/netty/buffer/PoolSubpage;
invokestatic io.netty.buffer.PoolArena.destroyPoolSubPages:([Lio/netty/buffer/PoolSubpage;)V
9: aload 0
bipush 6
anewarray io.netty.buffer.PoolChunkList
dup
iconst_0
aload 0
getfield io.netty.buffer.PoolArena.qInit:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_1
aload 0
getfield io.netty.buffer.PoolArena.q000:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_2
aload 0
getfield io.netty.buffer.PoolArena.q025:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_3
aload 0
getfield io.netty.buffer.PoolArena.q050:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_4
aload 0
getfield io.netty.buffer.PoolArena.q075:Lio/netty/buffer/PoolChunkList;
aastore
dup
iconst_5
aload 0
getfield io.netty.buffer.PoolArena.q100:Lio/netty/buffer/PoolChunkList;
aastore
invokevirtual io.netty.buffer.PoolArena.destroyPoolChunkLists:([Lio/netty/buffer/PoolChunkList;)V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/buffer/PoolArena<TT;>;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.lang.Throwable
private static void destroyPoolSubPages(io.netty.buffer.PoolSubpage<?>[]);
descriptor: ([Lio/netty/buffer/PoolSubpage;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: io.netty.buffer.PoolSubpage[] top int int io.netty.buffer.PoolSubpage[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual io.netty.buffer.PoolSubpage.destroy:()V
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 pages [Lio/netty/buffer/PoolSubpage;
2 3 1 page Lio/netty/buffer/PoolSubpage<*>;
Signature: ([Lio/netty/buffer/PoolSubpage<*>;)V
MethodParameters:
Name Flags
pages
private void destroyPoolChunkLists(io.netty.buffer.PoolChunkList<T>[]);
descriptor: ([Lio/netty/buffer/PoolChunkList;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: io.netty.buffer.PoolArena io.netty.buffer.PoolChunkList[] top int int io.netty.buffer.PoolChunkList[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
aload 0
invokevirtual io.netty.buffer.PoolChunkList.destroy:(Lio/netty/buffer/PoolArena;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/buffer/PoolArena<TT;>;
0 6 1 chunkLists [Lio/netty/buffer/PoolChunkList;
2 3 2 chunkList Lio/netty/buffer/PoolChunkList<TT;>;
Signature: ([Lio/netty/buffer/PoolChunkList<TT;>;)V
MethodParameters:
Name Flags
chunkLists
static int[] $SWITCH_TABLE$io$netty$buffer$PoolArena$SizeClass();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.netty.buffer.PoolArena.$SWITCH_TABLE$io$netty$buffer$PoolArena$SizeClass:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.netty.buffer.PoolArena$SizeClass.values:()[Lio/netty/buffer/PoolArena$SizeClass;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.netty.buffer.PoolArena$SizeClass.Normal:Lio/netty/buffer/PoolArena$SizeClass;
invokevirtual io.netty.buffer.PoolArena$SizeClass.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic io.netty.buffer.PoolArena$SizeClass.Small:Lio/netty/buffer/PoolArena$SizeClass;
invokevirtual io.netty.buffer.PoolArena$SizeClass.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic io.netty.buffer.PoolArena$SizeClass.Tiny:Lio/netty/buffer/PoolArena$SizeClass;
invokevirtual io.netty.buffer.PoolArena$SizeClass.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic io.netty.buffer.PoolArena.$SWITCH_TABLE$io$netty$buffer$PoolArena$SizeClass:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lio/netty/buffer/PoolArenaMetric;
SourceFile: "PoolArena.java"
NestMembers:
io.netty.buffer.PoolArena$DirectArena io.netty.buffer.PoolArena$HeapArena io.netty.buffer.PoolArena$SizeClass
InnerClasses:
final DirectArena = io.netty.buffer.PoolArena$DirectArena of io.netty.buffer.PoolArena
final HeapArena = io.netty.buffer.PoolArena$HeapArena of io.netty.buffer.PoolArena
final SizeClass = io.netty.buffer.PoolArena$SizeClass of io.netty.buffer.PoolArena