final class io.netty.handler.codec.compression.Bzip2HuffmanAllocator
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.compression.Bzip2HuffmanAllocator
super_class: java.lang.Object
{
private static int first(int[], int, int);
descriptor: ([III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=3
start local 0 // int[] array
start local 1 // int i
start local 2 // int nodesToMove
0: .line 34
aload 0 /* array */
arraylength
istore 3 /* length */
start local 3 // int length
1: .line 35
iload 1 /* i */
istore 4 /* limit */
start local 4 // int limit
2: .line 36
aload 0 /* array */
arraylength
iconst_2
isub
istore 5 /* k */
start local 5 // int k
3: .line 38
goto 6
4: .line 39
StackMap locals: int int int
StackMap stack:
iload 1 /* i */
istore 5 /* k */
5: .line 40
iload 1 /* i */
iload 4 /* limit */
iload 1 /* i */
isub
iconst_1
iadd
isub
istore 1 /* i */
6: .line 38
StackMap locals:
StackMap stack:
iload 1 /* i */
iload 2 /* nodesToMove */
if_icmplt 7
aload 0 /* array */
iload 1 /* i */
iaload
iload 3 /* length */
irem
iload 4 /* limit */
if_icmpgt 4
7: .line 42
StackMap locals:
StackMap stack:
iload 2 /* nodesToMove */
iconst_1
isub
iload 1 /* i */
invokestatic java.lang.Math.max:(II)I
istore 1 /* i */
8: .line 44
goto 14
9: .line 45
StackMap locals:
StackMap stack:
iload 1 /* i */
iload 5 /* k */
iadd
iconst_1
iushr
istore 6 /* temp */
start local 6 // int temp
10: .line 46
aload 0 /* array */
iload 6 /* temp */
iaload
iload 3 /* length */
irem
iload 4 /* limit */
if_icmple 13
11: .line 47
iload 6 /* temp */
istore 5 /* k */
12: .line 48
goto 14
13: .line 49
StackMap locals: int
StackMap stack:
iload 6 /* temp */
istore 1 /* i */
end local 6 // int temp
14: .line 44
StackMap locals:
StackMap stack:
iload 5 /* k */
iload 1 /* i */
iconst_1
iadd
if_icmpgt 9
15: .line 52
iload 5 /* k */
ireturn
end local 5 // int k
end local 4 // int limit
end local 3 // int length
end local 2 // int nodesToMove
end local 1 // int i
end local 0 // int[] array
LocalVariableTable:
Start End Slot Name Signature
0 16 0 array [I
0 16 1 i I
0 16 2 nodesToMove I
1 16 3 length I
2 16 4 limit I
3 16 5 k I
10 14 6 temp I
MethodParameters:
Name Flags
array final
i
nodesToMove final
private static void setExtendedParentPointers(int[]);
descriptor: ([I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 // int[] array
0: .line 60
aload 0 /* array */
arraylength
istore 1 /* length */
start local 1 // int length
1: .line 61
aload 0 /* array */
iconst_0
dup2
iaload
aload 0 /* array */
iconst_1
iaload
iadd
iastore
2: .line 63
iconst_0
istore 2 /* headNode */
start local 2 // int headNode
3: iconst_1
istore 3 /* tailNode */
start local 3 // int tailNode
4: iconst_2
istore 4 /* topNode */
start local 4 // int topNode
5: goto 18
6: .line 65
StackMap locals: int[] int int int int
StackMap stack:
iload 4 /* topNode */
iload 1 /* length */
if_icmpge 7
aload 0 /* array */
iload 2 /* headNode */
iaload
aload 0 /* array */
iload 4 /* topNode */
iaload
if_icmpge 10
7: .line 66
StackMap locals:
StackMap stack:
aload 0 /* array */
iload 2 /* headNode */
iaload
istore 5 /* temp */
start local 5 // int temp
8: .line 67
aload 0 /* array */
iload 2 /* headNode */
iinc 2 /* headNode */ 1
iload 3 /* tailNode */
iastore
9: .line 68
goto 11
end local 5 // int temp
10: .line 69
StackMap locals:
StackMap stack:
aload 0 /* array */
iload 4 /* topNode */
iinc 4 /* topNode */ 1
iaload
istore 5 /* temp */
start local 5 // int temp
11: .line 72
StackMap locals: int
StackMap stack:
iload 4 /* topNode */
iload 1 /* length */
if_icmpge 12
iload 2 /* headNode */
iload 3 /* tailNode */
if_icmpge 15
aload 0 /* array */
iload 2 /* headNode */
iaload
aload 0 /* array */
iload 4 /* topNode */
iaload
if_icmpge 15
12: .line 73
StackMap locals:
StackMap stack:
iload 5 /* temp */
aload 0 /* array */
iload 2 /* headNode */
iaload
iadd
istore 5 /* temp */
13: .line 74
aload 0 /* array */
iload 2 /* headNode */
iinc 2 /* headNode */ 1
iload 3 /* tailNode */
iload 1 /* length */
iadd
iastore
14: .line 75
goto 16
15: .line 76
StackMap locals:
StackMap stack:
iload 5 /* temp */
aload 0 /* array */
iload 4 /* topNode */
iinc 4 /* topNode */ 1
iaload
iadd
istore 5 /* temp */
16: .line 78
StackMap locals:
StackMap stack:
aload 0 /* array */
iload 3 /* tailNode */
iload 5 /* temp */
iastore
end local 5 // int temp
17: .line 63
iinc 3 /* tailNode */ 1
StackMap locals:
StackMap stack:
18: iload 3 /* tailNode */
iload 1 /* length */
iconst_1
isub
if_icmplt 6
end local 4 // int topNode
end local 3 // int tailNode
end local 2 // int headNode
19: .line 80
return
end local 1 // int length
end local 0 // int[] array
LocalVariableTable:
Start End Slot Name Signature
0 20 0 array [I
1 20 1 length I
3 19 2 headNode I
4 19 3 tailNode I
5 19 4 topNode I
8 10 5 temp I
11 17 5 temp I
MethodParameters:
Name Flags
array final
private static int findNodesToRelocate(int[], int);
descriptor: ([II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 // int[] array
start local 1 // int maximumLength
0: .line 89
aload 0 /* array */
arraylength
iconst_2
isub
istore 2 /* currentNode */
start local 2 // int currentNode
1: .line 90
iconst_1
istore 3 /* currentDepth */
start local 3 // int currentDepth
2: goto 5
3: .line 91
StackMap locals: int int
StackMap stack:
aload 0 /* array */
iload 2 /* currentNode */
iconst_1
isub
iconst_0
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.first:([III)I
istore 2 /* currentNode */
4: .line 90
iinc 3 /* currentDepth */ 1
StackMap locals:
StackMap stack:
5: iload 3 /* currentDepth */
iload 1 /* maximumLength */
iconst_1
isub
if_icmpge 6
iload 2 /* currentNode */
iconst_1
if_icmpgt 3
end local 3 // int currentDepth
6: .line 93
StackMap locals:
StackMap stack:
iload 2 /* currentNode */
ireturn
end local 2 // int currentNode
end local 1 // int maximumLength
end local 0 // int[] array
LocalVariableTable:
Start End Slot Name Signature
0 7 0 array [I
0 7 1 maximumLength I
1 7 2 currentNode I
2 6 3 currentDepth I
MethodParameters:
Name Flags
array final
maximumLength final
private static void allocateNodeLengths(int[]);
descriptor: ([I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=1
start local 0 // int[] array
0: .line 101
aload 0 /* array */
arraylength
iconst_2
isub
istore 1 /* firstNode */
start local 1 // int firstNode
1: .line 102
aload 0 /* array */
arraylength
iconst_1
isub
istore 2 /* nextNode */
start local 2 // int nextNode
2: .line 104
iconst_1
istore 3 /* currentDepth */
start local 3 // int currentDepth
3: iconst_2
istore 4 /* availableNodes */
start local 4 // int availableNodes
4: goto 14
5: .line 105
StackMap locals: int[] int int int int
StackMap stack:
iload 1 /* firstNode */
istore 5 /* lastNode */
start local 5 // int lastNode
6: .line 106
aload 0 /* array */
iload 5 /* lastNode */
iconst_1
isub
iconst_0
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.first:([III)I
istore 1 /* firstNode */
7: .line 108
iload 4 /* availableNodes */
iload 5 /* lastNode */
iload 1 /* firstNode */
isub
isub
istore 6 /* i */
start local 6 // int i
8: goto 11
9: .line 109
StackMap locals: int int
StackMap stack:
aload 0 /* array */
iload 2 /* nextNode */
iinc 2 /* nextNode */ -1
iload 3 /* currentDepth */
iastore
10: .line 108
iinc 6 /* i */ -1
StackMap locals:
StackMap stack:
11: iload 6 /* i */
ifgt 9
end local 6 // int i
12: .line 112
iload 5 /* lastNode */
iload 1 /* firstNode */
isub
iconst_1
ishl
istore 4 /* availableNodes */
end local 5 // int lastNode
13: .line 104
iinc 3 /* currentDepth */ 1
StackMap locals:
StackMap stack:
14: iload 4 /* availableNodes */
ifgt 5
end local 4 // int availableNodes
end local 3 // int currentDepth
15: .line 114
return
end local 2 // int nextNode
end local 1 // int firstNode
end local 0 // int[] array
LocalVariableTable:
Start End Slot Name Signature
0 16 0 array [I
1 16 1 firstNode I
2 16 2 nextNode I
3 15 3 currentDepth I
4 15 4 availableNodes I
6 13 5 lastNode I
8 12 6 i I
MethodParameters:
Name Flags
array final
private static void allocateNodeLengthsWithRelocation(int[], int, int);
descriptor: ([III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=3
start local 0 // int[] array
start local 1 // int nodesToMove
start local 2 // int insertDepth
0: .line 124
aload 0 /* array */
arraylength
iconst_2
isub
istore 3 /* firstNode */
start local 3 // int firstNode
1: .line 125
aload 0 /* array */
arraylength
iconst_1
isub
istore 4 /* nextNode */
start local 4 // int nextNode
2: .line 126
iload 2 /* insertDepth */
iconst_1
if_icmpne 3
iconst_2
goto 4
StackMap locals: int int
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 5 /* currentDepth */
start local 5 // int currentDepth
5: .line 127
iload 2 /* insertDepth */
iconst_1
if_icmpne 6
iload 1 /* nodesToMove */
iconst_2
isub
goto 7
StackMap locals: int
StackMap stack:
6: iload 1 /* nodesToMove */
StackMap locals:
StackMap stack: int
7: istore 6 /* nodesLeftToMove */
start local 6 // int nodesLeftToMove
8: .line 129
iload 5 /* currentDepth */
iconst_1
ishl
istore 7 /* availableNodes */
start local 7 // int availableNodes
9: goto 30
10: .line 130
StackMap locals: int int
StackMap stack:
iload 3 /* firstNode */
istore 8 /* lastNode */
start local 8 // int lastNode
11: .line 131
iload 3 /* firstNode */
iload 1 /* nodesToMove */
if_icmpgt 12
iload 3 /* firstNode */
goto 13
StackMap locals: int
StackMap stack:
12: aload 0 /* array */
iload 8 /* lastNode */
iconst_1
isub
iload 1 /* nodesToMove */
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.first:([III)I
StackMap locals:
StackMap stack: int
13: istore 3 /* firstNode */
14: .line 133
iconst_0
istore 9 /* offset */
start local 9 // int offset
15: .line 134
iload 5 /* currentDepth */
iload 2 /* insertDepth */
if_icmplt 18
16: .line 135
iload 6 /* nodesLeftToMove */
iconst_1
iload 5 /* currentDepth */
iload 2 /* insertDepth */
isub
ishl
invokestatic java.lang.Math.min:(II)I
istore 9 /* offset */
17: .line 136
goto 22
StackMap locals: int
StackMap stack:
18: iload 5 /* currentDepth */
iload 2 /* insertDepth */
iconst_1
isub
if_icmpne 22
19: .line 137
iconst_1
istore 9 /* offset */
20: .line 138
aload 0 /* array */
iload 3 /* firstNode */
iaload
iload 8 /* lastNode */
if_icmpne 22
21: .line 139
iinc 3 /* firstNode */ 1
22: .line 143
StackMap locals:
StackMap stack:
iload 7 /* availableNodes */
iload 8 /* lastNode */
iload 3 /* firstNode */
isub
iload 9 /* offset */
iadd
isub
istore 10 /* i */
start local 10 // int i
23: goto 26
24: .line 144
StackMap locals: int
StackMap stack:
aload 0 /* array */
iload 4 /* nextNode */
iinc 4 /* nextNode */ -1
iload 5 /* currentDepth */
iastore
25: .line 143
iinc 10 /* i */ -1
StackMap locals:
StackMap stack:
26: iload 10 /* i */
ifgt 24
end local 10 // int i
27: .line 147
iload 6 /* nodesLeftToMove */
iload 9 /* offset */
isub
istore 6 /* nodesLeftToMove */
28: .line 148
iload 8 /* lastNode */
iload 3 /* firstNode */
isub
iload 9 /* offset */
iadd
iconst_1
ishl
istore 7 /* availableNodes */
end local 9 // int offset
end local 8 // int lastNode
29: .line 129
iinc 5 /* currentDepth */ 1
StackMap locals:
StackMap stack:
30: iload 7 /* availableNodes */
ifgt 10
end local 7 // int availableNodes
31: .line 150
return
end local 6 // int nodesLeftToMove
end local 5 // int currentDepth
end local 4 // int nextNode
end local 3 // int firstNode
end local 2 // int insertDepth
end local 1 // int nodesToMove
end local 0 // int[] array
LocalVariableTable:
Start End Slot Name Signature
0 32 0 array [I
0 32 1 nodesToMove I
0 32 2 insertDepth I
1 32 3 firstNode I
2 32 4 nextNode I
5 32 5 currentDepth I
8 32 6 nodesLeftToMove I
9 31 7 availableNodes I
11 29 8 lastNode I
15 29 9 offset I
23 27 10 i I
MethodParameters:
Name Flags
array final
nodesToMove final
insertDepth final
static void allocateHuffmanCodeLengths(int[], int);
descriptor: ([II)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // int[] array
start local 1 // int maximumLength
0: .line 159
aload 0 /* array */
arraylength
tableswitch { // 1 - 2
1: 2
2: 1
default: 4
}
1: .line 161
StackMap locals:
StackMap stack:
aload 0 /* array */
iconst_1
iconst_1
iastore
2: .line 164
StackMap locals:
StackMap stack:
aload 0 /* array */
iconst_0
iconst_1
iastore
3: .line 165
return
4: .line 169
StackMap locals:
StackMap stack:
aload 0 /* array */
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.setExtendedParentPointers:([I)V
5: .line 172
aload 0 /* array */
iload 1 /* maximumLength */
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.findNodesToRelocate:([II)I
istore 2 /* nodesToRelocate */
start local 2 // int nodesToRelocate
6: .line 175
aload 0 /* array */
iconst_0
iaload
aload 0 /* array */
arraylength
irem
iload 2 /* nodesToRelocate */
if_icmplt 9
7: .line 176
aload 0 /* array */
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.allocateNodeLengths:([I)V
8: .line 177
goto 11
9: .line 178
StackMap locals: int
StackMap stack:
iload 1 /* maximumLength */
bipush 32
iload 2 /* nodesToRelocate */
iconst_1
isub
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
isub
istore 3 /* insertDepth */
start local 3 // int insertDepth
10: .line 179
aload 0 /* array */
iload 2 /* nodesToRelocate */
iload 3 /* insertDepth */
invokestatic io.netty.handler.codec.compression.Bzip2HuffmanAllocator.allocateNodeLengthsWithRelocation:([III)V
end local 3 // int insertDepth
11: .line 181
StackMap locals:
StackMap stack:
return
end local 2 // int nodesToRelocate
end local 1 // int maximumLength
end local 0 // int[] array
LocalVariableTable:
Start End Slot Name Signature
0 12 0 array [I
0 12 1 maximumLength I
6 12 2 nodesToRelocate I
10 11 3 insertDepth I
MethodParameters:
Name Flags
array final
maximumLength final
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // io.netty.handler.codec.compression.Bzip2HuffmanAllocator this
0: .line 183
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.netty.handler.codec.compression.Bzip2HuffmanAllocator this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/compression/Bzip2HuffmanAllocator;
}
SourceFile: "Bzip2HuffmanAllocator.java"