class org.apache.commons.compress.compressors.deflate64.HuffmanDecoder implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
super_class: java.lang.Object
{
private static final short[] RUN_LENGTH_TABLE;
descriptor: [S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] DISTANCE_TABLE;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] CODE_LENGTHS_ORDER;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] FIXED_LITERALS;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] FIXED_DISTANCE;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean finalBlock;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState state;
descriptor: Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
flags: (0x0002) ACC_PRIVATE
private org.apache.commons.compress.utils.BitInputStream reader;
descriptor: Lorg/apache/commons/compress/utils/BitInputStream;
flags: (0x0002) ACC_PRIVATE
private final java.io.InputStream in;
descriptor: Ljava/io/InputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory memory;
descriptor: Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecodingMemory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 29
newarray 9
dup
iconst_0
1: bipush 96
sastore
dup
iconst_1
sipush 128
sastore
dup
iconst_2
sipush 160
sastore
dup
iconst_3
sipush 192
sastore
dup
iconst_4
sipush 224
sastore
dup
iconst_5
sipush 256
sastore
dup
bipush 6
sipush 288
sastore
dup
bipush 7
sipush 320
sastore
dup
bipush 8
sipush 353
sastore
dup
bipush 9
sipush 417
sastore
dup
bipush 10
sipush 481
sastore
dup
bipush 11
sipush 545
sastore
dup
bipush 12
sipush 610
sastore
dup
bipush 13
sipush 738
sastore
dup
bipush 14
sipush 866
sastore
dup
bipush 15
2: sipush 994
sastore
dup
bipush 16
sipush 1123
sastore
dup
bipush 17
sipush 1379
sastore
dup
bipush 18
sipush 1635
sastore
dup
bipush 19
sipush 1891
sastore
dup
bipush 20
sipush 2148
sastore
dup
bipush 21
sipush 2660
sastore
dup
bipush 22
sipush 3172
sastore
dup
bipush 23
sipush 3684
sastore
dup
bipush 24
sipush 4197
sastore
dup
bipush 25
sipush 5221
sastore
dup
bipush 26
sipush 6245
sastore
dup
bipush 27
sipush 7269
sastore
dup
bipush 28
bipush 112
sastore
3: putstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.RUN_LENGTH_TABLE:[S
4: bipush 32
newarray 10
dup
iconst_0
5: bipush 16
iastore
dup
iconst_1
bipush 32
iastore
dup
iconst_2
bipush 48
iastore
dup
iconst_3
bipush 64
iastore
dup
iconst_4
bipush 81
iastore
dup
iconst_5
bipush 113
iastore
dup
bipush 6
sipush 146
iastore
dup
bipush 7
sipush 210
iastore
dup
bipush 8
sipush 275
iastore
dup
bipush 9
sipush 403
iastore
dup
bipush 10
6: sipush 532
iastore
dup
bipush 11
sipush 788
iastore
dup
bipush 12
sipush 1045
iastore
dup
bipush 13
sipush 1557
iastore
dup
bipush 14
sipush 2070
iastore
dup
bipush 15
sipush 3094
iastore
dup
bipush 16
sipush 4119
iastore
dup
bipush 17
sipush 6167
iastore
dup
bipush 18
sipush 8216
iastore
dup
bipush 19
sipush 12312
iastore
dup
bipush 20
7: sipush 16409
iastore
dup
bipush 21
sipush 24601
iastore
dup
bipush 22
ldc 32794
iastore
dup
bipush 23
ldc 49178
iastore
dup
bipush 24
ldc 65563
iastore
dup
bipush 25
ldc 98331
iastore
dup
bipush 26
ldc 131100
iastore
dup
bipush 27
ldc 196636
iastore
dup
bipush 28
ldc 262173
iastore
dup
bipush 29
ldc 393245
iastore
dup
bipush 30
8: ldc 524318
iastore
dup
bipush 31
ldc 786462
iastore
9: putstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.DISTANCE_TABLE:[I
10: bipush 19
newarray 10
dup
iconst_0
bipush 16
iastore
dup
iconst_1
bipush 17
iastore
dup
iconst_2
bipush 18
iastore
dup
iconst_4
bipush 8
iastore
dup
iconst_5
bipush 7
iastore
dup
bipush 6
bipush 9
iastore
dup
bipush 7
bipush 6
iastore
dup
bipush 8
bipush 10
iastore
dup
bipush 9
iconst_5
iastore
dup
bipush 10
bipush 11
iastore
dup
bipush 11
iconst_4
iastore
dup
bipush 12
bipush 12
iastore
dup
bipush 13
iconst_3
iastore
dup
bipush 14
bipush 13
iastore
dup
bipush 15
iconst_2
iastore
dup
bipush 16
bipush 14
iastore
dup
bipush 17
iconst_1
iastore
dup
bipush 18
bipush 15
iastore
11: putstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.CODE_LENGTHS_ORDER:[I
12: sipush 288
newarray 10
putstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_LITERALS:[I
13: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_LITERALS:[I
iconst_0
sipush 144
bipush 8
invokestatic java.util.Arrays.fill:([IIII)V
14: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_LITERALS:[I
sipush 144
sipush 256
bipush 9
invokestatic java.util.Arrays.fill:([IIII)V
15: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_LITERALS:[I
sipush 256
sipush 280
bipush 7
invokestatic java.util.Arrays.fill:([IIII)V
16: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_LITERALS:[I
sipush 280
sipush 288
bipush 8
invokestatic java.util.Arrays.fill:([IIII)V
17: bipush 32
newarray 10
putstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_DISTANCE:[I
18: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_DISTANCE:[I
iconst_5
invokestatic java.util.Arrays.fill:([II)V
19: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.finalBlock:Z
2: aload 0
new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory
dup
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory.<init>:()V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.memory:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecodingMemory;
3: aload 0
new org.apache.commons.compress.utils.BitInputStream
dup
aload 1
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokespecial org.apache.commons.compress.utils.BitInputStream.<init>:(Ljava/io/InputStream;Ljava/nio/ByteOrder;)V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
4: aload 0
aload 1
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.in:Ljava/io/InputStream;
5: aload 0
new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$InitialState
dup
aload 0
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$InitialState.<init>:(Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;)V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
0 7 1 in Ljava/io/InputStream;
MethodParameters:
Name Flags
in
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$InitialState
dup
aload 0
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$InitialState.<init>:(Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;)V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
1: aload 0
aconst_null
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
public int decode(byte[]);
descriptor: ([B)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.decode:([BII)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
0 1 1 b [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
public int decode(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: goto 17
1: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState.state:()Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanState.INITIAL:Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
if_acmpne 16
2: aload 0
aload 0
iconst_1
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
lconst_1
lcmp
ifne 3
iconst_1
goto 4
StackMap locals:
StackMap stack: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
3: iconst_0
StackMap locals: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder byte[] int int
StackMap stack: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder int
4: putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.finalBlock:Z
5: aload 0
iconst_2
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
l2i
istore 4
start local 4 6: iload 4
tableswitch { // 0 - 2
0: 7
1: 9
2: 11
default: 14
}
7: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.switchToUncompressedState:()V
8: goto 17
9: StackMap locals:
StackMap stack:
aload 0
new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes
dup
aload 0
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanState.FIXED_CODES:Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_LITERALS:[I
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.FIXED_DISTANCE:[I
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.<init>:(Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;[I[I)V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
10: goto 17
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readDynamicTables:()[[I
astore 5
start local 5 12: aload 0
new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes
dup
aload 0
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanState.DYNAMIC_CODES:Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
aload 5
iconst_0
aaload
aload 5
iconst_1
aaload
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.<init>:(Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;[I[I)V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
13: goto 17
end local 5 14: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported compression: "
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.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 4 15: StackMap locals:
StackMap stack:
goto 17
16: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
aload 1
iload 2
iload 3
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState.read:([BII)I
ireturn
17: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.finalBlock:Z
ifeq 1
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState.hasData:()Z
ifne 1
18: iconst_m1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
0 19 1 b [B
0 19 2 off I
0 19 3 len I
6 15 4 mode I
12 14 5 tables [[I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
long getBytesRead();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
invokevirtual org.apache.commons.compress.utils.BitInputStream.getBytesRead:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
private void switchToUncompressedState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
invokevirtual org.apache.commons.compress.utils.BitInputStream.alignWithByteBoundary:()V
1: aload 0
bipush 16
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
lstore 1
start local 1 2: aload 0
bipush 16
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
lstore 3
start local 3 3: lload 1
ldc 65535
lxor
ldc 65535
land
lload 3
lcmp
ifeq 5
4: new java.lang.IllegalStateException
dup
ldc "Illegal LEN / NLEN values"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: long long
StackMap stack:
aload 0
new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$UncompressedState
dup
aload 0
lload 1
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$UncompressedState.<init>:(Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;J)V
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
6: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
2 7 1 bLen J
3 7 3 bNLen J
Exceptions:
throws java.io.IOException
private int[][] readDynamicTables();
descriptor: ()[[I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=1
start local 0 0: iconst_2
anewarray int[]
astore 1
start local 1 1: aload 0
iconst_5
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
ldc 257
ladd
l2i
istore 2
start local 2 2: aload 1
iconst_0
iload 2
newarray 10
aastore
3: aload 0
iconst_5
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
lconst_1
ladd
l2i
istore 3
start local 3 4: aload 1
iconst_1
iload 3
newarray 10
aastore
5: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
aload 1
iconst_0
aaload
aload 1
iconst_1
aaload
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.populateDynamicTables:(Lorg/apache/commons/compress/utils/BitInputStream;[I[I)V
6: aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
1 7 1 result [[I
2 7 2 literals I
4 7 3 distances I
Exceptions:
throws java.io.IOException
int available();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecoderState;
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState.available:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
Exceptions:
throws java.io.IOException
private static int nextSymbol(org.apache.commons.compress.utils.BitInputStream, org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode);
descriptor: (Lorg/apache/commons/compress/utils/BitInputStream;Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: goto 6
2: StackMap locals: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode
StackMap stack:
aload 0
iconst_1
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
lstore 3
start local 3 3: lload 3
lconst_0
lcmp
ifne 4
aload 2
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.leftNode:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
goto 5
StackMap locals: long
StackMap stack:
4: aload 2
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.rightNode:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
StackMap locals:
StackMap stack: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode
5: astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 2
ifnull 7
aload 2
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.literal:I
iconst_m1
if_icmpeq 2
7: StackMap locals:
StackMap stack:
aload 2
ifnull 8
aload 2
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.literal:I
goto 9
StackMap locals:
StackMap stack:
8: iconst_m1
StackMap locals:
StackMap stack: int
9: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 reader Lorg/apache/commons/compress/utils/BitInputStream;
0 10 1 tree Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
1 10 2 node Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
3 6 3 bit J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reader
tree
private static void populateDynamicTables(org.apache.commons.compress.utils.BitInputStream, int[], int[]);
descriptor: (Lorg/apache/commons/compress/utils/BitInputStream;[I[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_4
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
ldc 4
ladd
l2i
istore 3
start local 3 1: bipush 19
newarray 10
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: int int[] int
StackMap stack:
aload 4
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.CODE_LENGTHS_ORDER:[I
iload 5
iaload
aload 0
iconst_3
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
l2i
iastore
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 3
if_icmplt 4
end local 5 7: aload 4
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.buildTree:([I)Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
astore 5
start local 5 8: aload 1
arraylength
aload 2
arraylength
iadd
newarray 10
astore 6
start local 6 9: iconst_m1
istore 7
start local 7 10: iconst_0
istore 8
start local 8 11: iconst_0
istore 9
start local 9 12: goto 32
13: StackMap locals: org.apache.commons.compress.utils.BitInputStream int[] int[] int int[] org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode int[] int int int
StackMap stack:
iload 8
ifle 17
14: aload 6
iload 9
iinc 9 1
iload 7
iastore
15: iinc 8 -1
16: goto 32
17: StackMap locals:
StackMap stack:
aload 0
aload 5
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.nextSymbol:(Lorg/apache/commons/compress/utils/BitInputStream;Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;)I
istore 10
start local 10 18: iload 10
bipush 16
if_icmpge 22
19: iload 10
istore 7
20: aload 6
iload 9
iinc 9 1
iload 7
iastore
21: goto 32
StackMap locals: int
StackMap stack:
22: iload 10
bipush 16
if_icmpne 25
23: aload 0
iconst_2
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
ldc 3
ladd
l2i
istore 8
24: goto 32
StackMap locals:
StackMap stack:
25: iload 10
bipush 17
if_icmpne 29
26: iconst_0
istore 7
27: aload 0
iconst_3
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
ldc 3
ladd
l2i
istore 8
28: goto 32
StackMap locals:
StackMap stack:
29: iload 10
bipush 18
if_icmpne 32
30: iconst_0
istore 7
31: aload 0
bipush 7
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
ldc 11
ladd
l2i
istore 8
end local 10 32: StackMap locals:
StackMap stack:
iload 9
aload 6
arraylength
if_icmplt 13
33: aload 6
iconst_0
aload 1
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: aload 6
aload 1
arraylength
aload 2
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
35: return
end local 9 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 36 0 reader Lorg/apache/commons/compress/utils/BitInputStream;
0 36 1 literals [I
0 36 2 distances [I
1 36 3 codeLengths I
2 36 4 codeLengthValues [I
3 7 5 cLen I
8 36 5 codeLengthTree Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
9 36 6 auxBuffer [I
10 36 7 value I
11 36 8 length I
12 36 9 off I
18 32 10 symbol I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reader
literals
distances
private static org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode buildTree(int[]);
descriptor: ([I)Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=1
start local 0 0: aload 0
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.getCodes:([I)[I
astore 1
start local 1 1: new org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode
dup
iconst_0
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.<init>:(I)V
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 19
4: StackMap locals: int[] org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode int
StackMap stack:
aload 0
iload 3
iaload
istore 4
start local 4 5: iload 4
ifeq 18
6: aload 2
astore 5
start local 5 7: aload 1
iload 4
iconst_1
isub
iaload
istore 6
start local 6 8: iload 4
iconst_1
isub
istore 7
start local 7 9: goto 15
10: StackMap locals: int[] int[] org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode int int org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode int int
StackMap stack:
iload 6
iconst_1
iload 7
ishl
iand
istore 8
start local 8 11: iload 8
ifne 12
aload 5
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.left:()Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
goto 13
StackMap locals: int
StackMap stack:
12: aload 5
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.right:()Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
StackMap locals:
StackMap stack: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode
13: astore 5
end local 8 14: iinc 7 -1
StackMap locals:
StackMap stack:
15: iload 7
ifge 10
end local 7 16: aload 5
iload 3
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode.leaf:(I)V
17: aload 1
iload 4
iconst_1
isub
dup2
iaload
iconst_1
iadd
iastore
end local 6 end local 5 end local 4 18: StackMap locals: int[] int[] org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode int
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
19: iload 3
aload 0
arraylength
if_icmplt 4
end local 3 20: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 litTable [I
1 21 1 literalCodes [I
2 21 2 root Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
3 20 3 i I
5 18 4 len I
7 18 5 node Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
8 18 6 lit I
9 16 7 p I
11 14 8 bit I
MethodParameters:
Name Flags
litTable
private static int[] getCodes(int[]);
descriptor: ([I)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: bipush 65
newarray 10
astore 2
start local 2 2: aload 0
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: int[] int int[] top int int int[]
StackMap stack:
3: aload 6
iload 4
iaload
istore 3
start local 3 4: iload 1
iload 3
invokestatic java.lang.Math.max:(II)I
istore 1
5: aload 2
iload 3
dup2
iaload
iconst_1
iadd
iastore
end local 3 6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 3
8: aload 2
iload 1
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([II)[I
astore 2
9: iconst_0
istore 3
start local 3 10: iload 1
iconst_1
iadd
newarray 10
astore 4
start local 4 11: iconst_0
istore 5
start local 5 12: goto 16
13: StackMap locals: int[] int int[] int int[] int
StackMap stack:
iload 3
aload 2
iload 5
iaload
iadd
iconst_1
ishl
istore 3
14: aload 4
iload 5
iload 3
iastore
15: iinc 5 1
StackMap locals:
StackMap stack:
16: iload 5
iload 1
if_icmple 13
end local 5 17: 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 18 0 litTable [I
1 18 1 max I
2 18 2 blCount [I
4 6 3 aLitTable I
10 18 3 code I
11 18 4 nextCode [I
12 17 5 i I
MethodParameters:
Name Flags
litTable
private long readBits(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
iload 1
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(Lorg/apache/commons/compress/utils/BitInputStream;I)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
0 1 1 numBits I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
numBits
private static long readBits(org.apache.commons.compress.utils.BitInputStream, int);
descriptor: (Lorg/apache/commons/compress/utils/BitInputStream;I)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.apache.commons.compress.utils.BitInputStream.readBits:(I)J
lstore 2
start local 2 1: lload 2
ldc -1
lcmp
ifne 3
2: new java.io.EOFException
dup
ldc "Truncated Deflate64 Stream"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: long
StackMap stack:
lload 2
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 reader Lorg/apache/commons/compress/utils/BitInputStream;
0 4 1 numBits I
1 4 2 r J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reader
numBits
}
SourceFile: "HuffmanDecoder.java"
NestMembers:
org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$InitialState org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$UncompressedState
InnerClasses:
private BinaryTreeNode = org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode of org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
private abstract DecoderState = org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState of org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
private DecodingMemory = org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory of org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
private HuffmanCodes = org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes of org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
private InitialState = org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$InitialState of org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
private UncompressedState = org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$UncompressedState of org.apache.commons.compress.compressors.deflate64.HuffmanDecoder