final class io.netty.buffer.PoolChunk<T> implements io.netty.buffer.PoolChunkMetric
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.buffer.PoolChunk
super_class: java.lang.Object
{
private static final int INTEGER_SIZE_MINUS_ONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 31
final io.netty.buffer.PoolArena<T> arena;
descriptor: Lio/netty/buffer/PoolArena;
flags: (0x0010) ACC_FINAL
Signature: Lio/netty/buffer/PoolArena<TT;>;
final T memory;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Signature: TT;
final boolean unpooled;
descriptor: Z
flags: (0x0010) ACC_FINAL
final int offset;
descriptor: I
flags: (0x0010) ACC_FINAL
private final byte[] memoryMap;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] depthMap;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.buffer.PoolSubpage<T>[] subpages;
descriptor: [Lio/netty/buffer/PoolSubpage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Lio/netty/buffer/PoolSubpage<TT;>;
private final int subpageOverflowMask;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int pageSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int pageShifts;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxOrder;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int chunkSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int log2ChunkSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxSubpageAllocs;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte unusable;
descriptor: B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int freeBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
io.netty.buffer.PoolChunkList<T> parent;
descriptor: Lio/netty/buffer/PoolChunkList;
flags: (0x0000)
Signature: Lio/netty/buffer/PoolChunkList<TT;>;
io.netty.buffer.PoolChunk<T> prev;
descriptor: Lio/netty/buffer/PoolChunk;
flags: (0x0000)
Signature: Lio/netty/buffer/PoolChunk<TT;>;
io.netty.buffer.PoolChunk<T> next;
descriptor: Lio/netty/buffer/PoolChunk;
flags: (0x0000)
Signature: Lio/netty/buffer/PoolChunk<TT;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/netty/buffer/PoolChunk;
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.PoolChunk.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(io.netty.buffer.PoolArena<T>, T, int, int, int, int, );
descriptor: (Lio/netty/buffer/PoolArena;Ljava/lang/Object;IIIII)V
flags: (0x0000)
Code:
stack=5, locals=12, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield io.netty.buffer.PoolChunk.unpooled:Z
2: aload 0
aload 1
putfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
3: aload 0
aload 2
putfield io.netty.buffer.PoolChunk.memory:Ljava/lang/Object;
4: aload 0
iload 3
putfield io.netty.buffer.PoolChunk.pageSize:I
5: aload 0
iload 5
putfield io.netty.buffer.PoolChunk.pageShifts:I
6: aload 0
iload 4
putfield io.netty.buffer.PoolChunk.maxOrder:I
7: aload 0
iload 6
putfield io.netty.buffer.PoolChunk.chunkSize:I
8: aload 0
iload 7
putfield io.netty.buffer.PoolChunk.offset:I
9: aload 0
iload 4
iconst_1
iadd
i2b
putfield io.netty.buffer.PoolChunk.unusable:B
10: aload 0
iload 6
invokestatic io.netty.buffer.PoolChunk.log2:(I)I
putfield io.netty.buffer.PoolChunk.log2ChunkSize:I
11: aload 0
iload 3
iconst_1
isub
iconst_m1
ixor
putfield io.netty.buffer.PoolChunk.subpageOverflowMask:I
12: aload 0
iload 6
putfield io.netty.buffer.PoolChunk.freeBytes:I
13: getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 14
iload 4
bipush 30
if_icmplt 14
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "maxOrder should be < 30, but is: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
14: StackMap locals: io.netty.buffer.PoolChunk io.netty.buffer.PoolArena java.lang.Object int int int int int
StackMap stack:
aload 0
iconst_1
iload 4
ishl
putfield io.netty.buffer.PoolChunk.maxSubpageAllocs:I
15: aload 0
aload 0
getfield io.netty.buffer.PoolChunk.maxSubpageAllocs:I
iconst_1
ishl
newarray 8
putfield io.netty.buffer.PoolChunk.memoryMap:[B
16: aload 0
aload 0
getfield io.netty.buffer.PoolChunk.memoryMap:[B
arraylength
newarray 8
putfield io.netty.buffer.PoolChunk.depthMap:[B
17: iconst_1
istore 8
start local 8 18: iconst_0
istore 9
start local 9 19: goto 29
20: StackMap locals: int int
StackMap stack:
iconst_1
iload 9
ishl
istore 10
start local 10 21: iconst_0
istore 11
start local 11 22: goto 27
23: StackMap locals: int int
StackMap stack:
aload 0
getfield io.netty.buffer.PoolChunk.memoryMap:[B
iload 8
iload 9
i2b
bastore
24: aload 0
getfield io.netty.buffer.PoolChunk.depthMap:[B
iload 8
iload 9
i2b
bastore
25: iinc 8 1
26: iinc 11 1
StackMap locals:
StackMap stack:
27: iload 11
iload 10
if_icmplt 23
end local 11 end local 10 28: iinc 9 1
StackMap locals:
StackMap stack:
29: iload 9
iload 4
if_icmple 20
end local 9 30: aload 0
aload 0
aload 0
getfield io.netty.buffer.PoolChunk.maxSubpageAllocs:I
invokevirtual io.netty.buffer.PoolChunk.newSubpageArray:(I)[Lio/netty/buffer/PoolSubpage;
putfield io.netty.buffer.PoolChunk.subpages:[Lio/netty/buffer/PoolSubpage;
31: return
end local 8 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 32 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 32 1 arena Lio/netty/buffer/PoolArena<TT;>;
0 32 2 memory TT;
0 32 3 pageSize I
0 32 4 maxOrder I
0 32 5 pageShifts I
0 32 6 chunkSize I
0 32 7 offset I
18 32 8 memoryMapIndex I
19 30 9 d I
21 28 10 depth I
22 28 11 p I
Signature: (Lio/netty/buffer/PoolArena<TT;>;TT;IIIII)V
MethodParameters:
Name Flags
arena
memory
pageSize
maxOrder
pageShifts
chunkSize
offset
void <init>(io.netty.buffer.PoolArena<T>, T, int, );
descriptor: (Lio/netty/buffer/PoolArena;Ljava/lang/Object;II)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield io.netty.buffer.PoolChunk.unpooled:Z
2: aload 0
aload 1
putfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
3: aload 0
aload 2
putfield io.netty.buffer.PoolChunk.memory:Ljava/lang/Object;
4: aload 0
iload 4
putfield io.netty.buffer.PoolChunk.offset:I
5: aload 0
aconst_null
putfield io.netty.buffer.PoolChunk.memoryMap:[B
6: aload 0
aconst_null
putfield io.netty.buffer.PoolChunk.depthMap:[B
7: aload 0
aconst_null
putfield io.netty.buffer.PoolChunk.subpages:[Lio/netty/buffer/PoolSubpage;
8: aload 0
iconst_0
putfield io.netty.buffer.PoolChunk.subpageOverflowMask:I
9: aload 0
iconst_0
putfield io.netty.buffer.PoolChunk.pageSize:I
10: aload 0
iconst_0
putfield io.netty.buffer.PoolChunk.pageShifts:I
11: aload 0
iconst_0
putfield io.netty.buffer.PoolChunk.maxOrder:I
12: aload 0
aload 0
getfield io.netty.buffer.PoolChunk.maxOrder:I
iconst_1
iadd
i2b
putfield io.netty.buffer.PoolChunk.unusable:B
13: aload 0
iload 3
putfield io.netty.buffer.PoolChunk.chunkSize:I
14: aload 0
aload 0
getfield io.netty.buffer.PoolChunk.chunkSize:I
invokestatic io.netty.buffer.PoolChunk.log2:(I)I
putfield io.netty.buffer.PoolChunk.log2ChunkSize:I
15: aload 0
iconst_0
putfield io.netty.buffer.PoolChunk.maxSubpageAllocs:I
16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 17 1 arena Lio/netty/buffer/PoolArena<TT;>;
0 17 2 memory TT;
0 17 3 size I
0 17 4 offset I
Signature: (Lio/netty/buffer/PoolArena<TT;>;TT;II)V
MethodParameters:
Name Flags
arena
memory
size
offset
private io.netty.buffer.PoolSubpage<T>[] newSubpageArray(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/PoolChunk<TT;>;
0 1 1 size I
Signature: (I)[Lio/netty/buffer/PoolSubpage<TT;>;
MethodParameters:
Name Flags
size
public int usage();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
dup
astore 2
monitorenter
1: aload 0
getfield io.netty.buffer.PoolChunk.freeBytes:I
istore 1
start local 1 2: aload 2
monitorexit
3: goto 6
end local 1 StackMap locals: io.netty.buffer.PoolChunk top io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
start local 1 6: StackMap locals: io.netty.buffer.PoolChunk int
StackMap stack:
aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.usage:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/buffer/PoolChunk<TT;>;
2 4 1 freeBytes I
6 7 1 freeBytes I
Exception table:
from to target type
1 3 4 any
4 5 4 any
private int usage(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
1: bipush 100
ireturn
2: StackMap locals:
StackMap stack:
iload 1
i2l
ldc 100
lmul
aload 0
getfield io.netty.buffer.PoolChunk.chunkSize:I
i2l
ldiv
l2i
istore 2
start local 2 3: iload 2
ifne 5
4: bipush 99
ireturn
5: StackMap locals: int
StackMap stack:
bipush 100
iload 2
isub
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 6 1 freeBytes I
3 6 2 freePercentage I
MethodParameters:
Name Flags
freeBytes
long allocate(int);
descriptor: (I)J
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.PoolChunk.subpageOverflowMask:I
iand
ifeq 2
1: aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.allocateRun:(I)J
lreturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.allocateSubpage:(I)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 3 1 normCapacity I
MethodParameters:
Name Flags
normCapacity
private void updateParentsAlloc(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: goto 9
1: StackMap locals:
StackMap stack:
iload 1
iconst_1
iushr
istore 2
start local 2 2: aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 3
start local 3 3: aload 0
iload 1
iconst_1
ixor
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 4
start local 4 4: iload 3
iload 4
if_icmpge 5
iload 3
goto 6
StackMap locals: int int int
StackMap stack:
5: iload 4
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: aload 0
iload 2
iload 5
invokevirtual io.netty.buffer.PoolChunk.setValue:(IB)V
8: iload 2
istore 1
end local 5 end local 4 end local 3 end local 2 9: StackMap locals:
StackMap stack:
iload 1
iconst_1
if_icmpgt 1
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 11 1 id I
2 9 2 parentId I
3 9 3 val1 B
4 9 4 val2 B
7 9 5 val B
MethodParameters:
Name Flags
id
private void updateParentsFree(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.depth:(I)B
iconst_1
iadd
istore 2
start local 2 1: goto 14
2: StackMap locals: int
StackMap stack:
iload 1
iconst_1
iushr
istore 3
start local 3 3: aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 4
start local 4 4: aload 0
iload 1
iconst_1
ixor
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 5
start local 5 5: iinc 2 -1
6: iload 4
iload 2
if_icmpne 9
iload 5
iload 2
if_icmpne 9
7: aload 0
iload 3
iload 2
iconst_1
isub
i2b
invokevirtual io.netty.buffer.PoolChunk.setValue:(IB)V
8: goto 13
9: StackMap locals: int int int
StackMap stack:
iload 4
iload 5
if_icmpge 10
iload 4
goto 11
StackMap locals:
StackMap stack:
10: iload 5
StackMap locals:
StackMap stack: int
11: istore 6
start local 6 12: aload 0
iload 3
iload 6
invokevirtual io.netty.buffer.PoolChunk.setValue:(IB)V
end local 6 13: StackMap locals:
StackMap stack:
iload 3
istore 1
end local 5 end local 4 end local 3 14: StackMap locals:
StackMap stack:
iload 1
iconst_1
if_icmpgt 2
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 16 1 id I
1 16 2 logChild I
3 14 3 parentId I
4 14 4 val1 B
5 14 5 val2 B
12 13 6 val B
MethodParameters:
Name Flags
id
private int allocateNode(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=2
start local 0 start local 1 0: iconst_1
istore 2
start local 2 1: iconst_1
iload 1
ishl
ineg
istore 3
start local 3 2: aload 0
iload 2
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 4
start local 4 3: iload 4
iload 1
if_icmple 10
4: iconst_m1
ireturn
5: StackMap locals: int int int
StackMap stack:
iload 2
iconst_1
ishl
istore 2
6: aload 0
iload 2
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 4
7: iload 4
iload 1
if_icmple 10
8: iload 2
iconst_1
ixor
istore 2
9: aload 0
iload 2
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 4
10: StackMap locals:
StackMap stack:
iload 4
iload 1
if_icmplt 5
iload 2
iload 3
iand
ifeq 5
11: aload 0
iload 2
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 5
start local 5 12: getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 16
iload 5
iload 1
if_icmpne 13
iload 2
iload 3
iand
iconst_1
iload 1
ishl
if_icmpeq 16
StackMap locals: int
StackMap stack:
13: new java.lang.AssertionError
dup
ldc "val = %d, id & initial = %d, d = %d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
14: iload 5
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
dup
iconst_1
iload 2
iload 3
iand
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
15: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
iload 2
aload 0
getfield io.netty.buffer.PoolChunk.unusable:B
invokevirtual io.netty.buffer.PoolChunk.setValue:(IB)V
17: aload 0
iload 2
invokevirtual io.netty.buffer.PoolChunk.updateParentsAlloc:(I)V
18: iload 2
ireturn
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 19 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 19 1 d I
1 19 2 id I
2 19 3 initial I
3 19 4 val B
12 19 5 value B
MethodParameters:
Name Flags
d
private long allocateRun(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.buffer.PoolChunk.maxOrder:I
iload 1
invokestatic io.netty.buffer.PoolChunk.log2:(I)I
aload 0
getfield io.netty.buffer.PoolChunk.pageShifts:I
isub
isub
istore 2
start local 2 1: aload 0
iload 2
invokevirtual io.netty.buffer.PoolChunk.allocateNode:(I)I
istore 3
start local 3 2: iload 3
ifge 4
3: iload 3
i2l
lreturn
4: StackMap locals: int int
StackMap stack:
aload 0
dup
getfield io.netty.buffer.PoolChunk.freeBytes:I
aload 0
iload 3
invokevirtual io.netty.buffer.PoolChunk.runLength:(I)I
isub
putfield io.netty.buffer.PoolChunk.freeBytes:I
5: iload 3
i2l
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 6 1 normCapacity I
1 6 2 d I
2 6 3 id I
MethodParameters:
Name Flags
normCapacity
private long allocateSubpage(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
iload 1
invokevirtual io.netty.buffer.PoolArena.findSubpagePoolHead:(I)Lio/netty/buffer/PoolSubpage;
astore 2
start local 2 1: aload 2
dup
astore 3
monitorenter
2: aload 0
getfield io.netty.buffer.PoolChunk.maxOrder:I
istore 4
start local 4 3: aload 0
iload 4
invokevirtual io.netty.buffer.PoolChunk.allocateNode:(I)I
istore 5
start local 5 4: iload 5
ifge 7
5: iload 5
i2l
aload 3
monitorexit
6: lreturn
7: StackMap locals: io.netty.buffer.PoolChunk int io.netty.buffer.PoolSubpage io.netty.buffer.PoolSubpage int int
StackMap stack:
aload 0
getfield io.netty.buffer.PoolChunk.subpages:[Lio/netty/buffer/PoolSubpage;
astore 6
start local 6 8: aload 0
getfield io.netty.buffer.PoolChunk.pageSize:I
istore 7
start local 7 9: aload 0
dup
getfield io.netty.buffer.PoolChunk.freeBytes:I
iload 7
isub
putfield io.netty.buffer.PoolChunk.freeBytes:I
10: aload 0
iload 5
invokevirtual io.netty.buffer.PoolChunk.subpageIdx:(I)I
istore 8
start local 8 11: aload 6
iload 8
aaload
astore 9
start local 9 12: aload 9
ifnonnull 16
13: new io.netty.buffer.PoolSubpage
dup
aload 2
aload 0
iload 5
aload 0
iload 5
invokevirtual io.netty.buffer.PoolChunk.runOffset:(I)I
iload 7
iload 1
invokespecial io.netty.buffer.PoolSubpage.<init>:(Lio/netty/buffer/PoolSubpage;Lio/netty/buffer/PoolChunk;IIII)V
astore 9
14: aload 6
iload 8
aload 9
aastore
15: goto 17
16: StackMap locals: io.netty.buffer.PoolChunk int io.netty.buffer.PoolSubpage io.netty.buffer.PoolSubpage int int io.netty.buffer.PoolSubpage[] int int io.netty.buffer.PoolSubpage
StackMap stack:
aload 9
aload 2
iload 1
invokevirtual io.netty.buffer.PoolSubpage.init:(Lio/netty/buffer/PoolSubpage;I)V
17: StackMap locals:
StackMap stack:
aload 9
invokevirtual io.netty.buffer.PoolSubpage.allocate:()J
aload 3
monitorexit
18: lreturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 19: StackMap locals: io.netty.buffer.PoolChunk int io.netty.buffer.PoolSubpage io.netty.buffer.PoolSubpage
StackMap stack: java.lang.Throwable
aload 3
monitorexit
20: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 21 1 normCapacity I
1 21 2 head Lio/netty/buffer/PoolSubpage<TT;>;
3 19 4 d I
4 19 5 id I
8 19 6 subpages [Lio/netty/buffer/PoolSubpage;
9 19 7 pageSize I
11 19 8 subpageIdx I
12 19 9 subpage Lio/netty/buffer/PoolSubpage<TT;>;
Exception table:
from to target type
2 6 19 any
7 18 19 any
19 20 19 any
MethodParameters:
Name Flags
normCapacity
void free(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: lload 1
invokestatic io.netty.buffer.PoolChunk.memoryMapIdx:(J)I
istore 3
start local 3 1: lload 1
invokestatic io.netty.buffer.PoolChunk.bitmapIdx:(J)I
istore 4
start local 4 2: iload 4
ifeq 15
3: aload 0
getfield io.netty.buffer.PoolChunk.subpages:[Lio/netty/buffer/PoolSubpage;
aload 0
iload 3
invokevirtual io.netty.buffer.PoolChunk.subpageIdx:(I)I
aaload
astore 5
start local 5 4: getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 6
aload 5
ifnull 5
aload 5
getfield io.netty.buffer.PoolSubpage.doNotDestroy:Z
ifne 6
StackMap locals: int int io.netty.buffer.PoolSubpage
StackMap stack:
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
aload 5
getfield io.netty.buffer.PoolSubpage.elemSize:I
invokevirtual io.netty.buffer.PoolArena.findSubpagePoolHead:(I)Lio/netty/buffer/PoolSubpage;
astore 6
start local 6 7: aload 6
dup
astore 7
monitorenter
8: aload 5
aload 6
iload 4
ldc 1073741823
iand
invokevirtual io.netty.buffer.PoolSubpage.free:(Lio/netty/buffer/PoolSubpage;I)Z
ifeq 11
9: aload 7
monitorexit
10: return
11: StackMap locals: io.netty.buffer.PoolSubpage io.netty.buffer.PoolSubpage
StackMap stack:
aload 7
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 7
monitorexit
14: athrow
end local 6 end local 5 15: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.netty.buffer.PoolChunk.freeBytes:I
aload 0
iload 3
invokevirtual io.netty.buffer.PoolChunk.runLength:(I)I
iadd
putfield io.netty.buffer.PoolChunk.freeBytes:I
16: aload 0
iload 3
aload 0
iload 3
invokevirtual io.netty.buffer.PoolChunk.depth:(I)B
invokevirtual io.netty.buffer.PoolChunk.setValue:(IB)V
17: aload 0
iload 3
invokevirtual io.netty.buffer.PoolChunk.updateParentsFree:(I)V
18: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 19 1 handle J
1 19 3 memoryMapIdx I
2 19 4 bitmapIdx I
4 15 5 subpage Lio/netty/buffer/PoolSubpage<TT;>;
7 15 6 head Lio/netty/buffer/PoolSubpage<TT;>;
Exception table:
from to target type
8 10 13 any
11 12 13 any
13 14 13 any
MethodParameters:
Name Flags
handle
void initBuf(io.netty.buffer.PooledByteBuf<T>, long, );
descriptor: (Lio/netty/buffer/PooledByteBuf;JI)V
flags: (0x0000)
Code:
stack=8, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
invokestatic io.netty.buffer.PoolChunk.memoryMapIdx:(J)I
istore 5
start local 5 1: lload 2
invokestatic io.netty.buffer.PoolChunk.bitmapIdx:(J)I
istore 6
start local 6 2: iload 6
ifne 9
3: aload 0
iload 5
invokevirtual io.netty.buffer.PoolChunk.value:(I)B
istore 7
start local 7 4: getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 5
iload 7
aload 0
getfield io.netty.buffer.PoolChunk.unusable:B
if_icmpeq 5
new java.lang.AssertionError
dup
iload 7
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: int int int
StackMap stack:
aload 1
aload 0
lload 2
aload 0
iload 5
invokevirtual io.netty.buffer.PoolChunk.runOffset:(I)I
aload 0
getfield io.netty.buffer.PoolChunk.offset:I
iadd
iload 4
aload 0
iload 5
invokevirtual io.netty.buffer.PoolChunk.runLength:(I)I
6: aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
getfield io.netty.buffer.PoolArena.parent:Lio/netty/buffer/PooledByteBufAllocator;
invokevirtual io.netty.buffer.PooledByteBufAllocator.threadCache:()Lio/netty/buffer/PoolThreadCache;
7: invokevirtual io.netty.buffer.PooledByteBuf.init:(Lio/netty/buffer/PoolChunk;JIIILio/netty/buffer/PoolThreadCache;)V
end local 7 8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
iload 6
iload 4
invokevirtual io.netty.buffer.PoolChunk.initBufWithSubpage:(Lio/netty/buffer/PooledByteBuf;JII)V
10: StackMap locals:
StackMap stack:
return
end local 6 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/PoolChunk<TT;>;
0 11 1 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 11 2 handle J
0 11 4 reqCapacity I
1 11 5 memoryMapIdx I
2 11 6 bitmapIdx I
4 8 7 val B
Signature: (Lio/netty/buffer/PooledByteBuf<TT;>;JI)V
MethodParameters:
Name Flags
buf
handle
reqCapacity
void initBufWithSubpage(io.netty.buffer.PooledByteBuf<T>, long, );
descriptor: (Lio/netty/buffer/PooledByteBuf;JI)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
aload 1
lload 2
lload 2
invokestatic io.netty.buffer.PoolChunk.bitmapIdx:(J)I
iload 4
invokevirtual io.netty.buffer.PoolChunk.initBufWithSubpage:(Lio/netty/buffer/PooledByteBuf;JII)V
1: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 2 1 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 2 2 handle J
0 2 4 reqCapacity I
Signature: (Lio/netty/buffer/PooledByteBuf<TT;>;JI)V
MethodParameters:
Name Flags
buf
handle
reqCapacity
private void initBufWithSubpage(io.netty.buffer.PooledByteBuf<T>, long, int, );
descriptor: (Lio/netty/buffer/PooledByteBuf;JII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 1
iload 4
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
lload 2
invokestatic io.netty.buffer.PoolChunk.memoryMapIdx:(J)I
istore 6
start local 6 2: aload 0
getfield io.netty.buffer.PoolChunk.subpages:[Lio/netty/buffer/PoolSubpage;
aload 0
iload 6
invokevirtual io.netty.buffer.PoolChunk.subpageIdx:(I)I
aaload
astore 7
start local 7 3: getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 4
aload 7
getfield io.netty.buffer.PoolSubpage.doNotDestroy:Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int io.netty.buffer.PoolSubpage
StackMap stack:
getstatic io.netty.buffer.PoolChunk.$assertionsDisabled:Z
ifne 5
iload 5
aload 7
getfield io.netty.buffer.PoolSubpage.elemSize:I
if_icmple 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 1
6: aload 0
lload 2
7: aload 0
iload 6
invokevirtual io.netty.buffer.PoolChunk.runOffset:(I)I
iload 4
ldc 1073741823
iand
aload 7
getfield io.netty.buffer.PoolSubpage.elemSize:I
imul
iadd
aload 0
getfield io.netty.buffer.PoolChunk.offset:I
iadd
8: iload 5
aload 7
getfield io.netty.buffer.PoolSubpage.elemSize:I
aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
getfield io.netty.buffer.PoolArena.parent:Lio/netty/buffer/PooledByteBufAllocator;
invokevirtual io.netty.buffer.PooledByteBufAllocator.threadCache:()Lio/netty/buffer/PoolThreadCache;
9: invokevirtual io.netty.buffer.PooledByteBuf.init:(Lio/netty/buffer/PoolChunk;JIIILio/netty/buffer/PoolThreadCache;)V
10: return
end local 7 end local 6 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/PoolChunk<TT;>;
0 11 1 buf Lio/netty/buffer/PooledByteBuf<TT;>;
0 11 2 handle J
0 11 4 bitmapIdx I
0 11 5 reqCapacity I
2 11 6 memoryMapIdx I
3 11 7 subpage Lio/netty/buffer/PoolSubpage<TT;>;
Signature: (Lio/netty/buffer/PooledByteBuf<TT;>;JII)V
MethodParameters:
Name Flags
buf
handle
bitmapIdx
reqCapacity
private byte value(int);
descriptor: (I)B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.buffer.PoolChunk.memoryMap:[B
iload 1
baload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 1 1 id I
MethodParameters:
Name Flags
id
private void setValue(int, byte);
descriptor: (IB)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.buffer.PoolChunk.memoryMap:[B
iload 1
iload 2
bastore
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 2 1 id I
0 2 2 val B
MethodParameters:
Name Flags
id
val
private byte depth(int);
descriptor: (I)B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.buffer.PoolChunk.depthMap:[B
iload 1
baload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 1 1 id I
MethodParameters:
Name Flags
id
private static int log2(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush 31
iload 0
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 val I
MethodParameters:
Name Flags
val
private int runLength(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
aload 0
getfield io.netty.buffer.PoolChunk.log2ChunkSize:I
aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.depth:(I)B
isub
ishl
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 1 1 id I
MethodParameters:
Name Flags
id
private int runOffset(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.depth:(I)B
ishl
ixor
istore 2
start local 2 1: iload 2
aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.runLength:(I)I
imul
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 2 1 id I
1 2 2 shift I
MethodParameters:
Name Flags
id
private int subpageIdx(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield io.netty.buffer.PoolChunk.maxSubpageAllocs:I
ixor
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolChunk<TT;>;
0 1 1 memoryMapIdx I
MethodParameters:
Name Flags
memoryMapIdx
private static int memoryMapIdx(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: lload 0
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 handle J
MethodParameters:
Name Flags
handle
private static int bitmapIdx(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
bipush 32
lushr
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 handle J
MethodParameters:
Name Flags
handle
public int chunkSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolChunk.chunkSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/buffer/PoolChunk<TT;>;
public int freeBytes();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
dup
astore 1
monitorenter
1: aload 0
getfield io.netty.buffer.PoolChunk.freeBytes:I
aload 1
monitorexit
2: ireturn
3: StackMap locals: io.netty.buffer.PoolChunk io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/buffer/PoolChunk<TT;>;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
dup
astore 2
monitorenter
1: aload 0
getfield io.netty.buffer.PoolChunk.freeBytes:I
istore 1
start local 1 2: aload 2
monitorexit
3: goto 6
end local 1 StackMap locals: io.netty.buffer.PoolChunk top io.netty.buffer.PoolArena
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
start local 1 6: StackMap locals: io.netty.buffer.PoolChunk int
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
7: ldc "Chunk("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: aload 0
iload 1
invokevirtual io.netty.buffer.PoolChunk.usage:(I)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: ldc "%, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload 0
getfield io.netty.buffer.PoolChunk.chunkSize:I
iload 1
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
13: bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
14: aload 0
getfield io.netty.buffer.PoolChunk.chunkSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
15: bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
16: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/netty/buffer/PoolChunk<TT;>;
2 4 1 freeBytes I
6 18 1 freeBytes I
Exception table:
from to target type
1 3 4 any
4 5 4 any
void destroy();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.buffer.PoolChunk.arena:Lio/netty/buffer/PoolArena;
aload 0
invokevirtual io.netty.buffer.PoolArena.destroyChunk:(Lio/netty/buffer/PoolChunk;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/buffer/PoolChunk<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lio/netty/buffer/PoolChunkMetric;
SourceFile: "PoolChunk.java"