class org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes extends org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes
super_class: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState
{
private boolean endOfBlock;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final org.apache.commons.compress.compressors.deflate64.HuffmanState state;
descriptor: Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode lengthTree;
descriptor: Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$BinaryTreeNode distanceTree;
descriptor: Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int runBufferPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] runBuffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int runBufferLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final org.apache.commons.compress.compressors.deflate64.HuffmanDecoder this$0;
descriptor: Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(org.apache.commons.compress.compressors.deflate64.HuffmanDecoder, org.apache.commons.compress.compressors.deflate64.HuffmanState, int[], int[]);
descriptor: (Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;[I[I)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
aload 0
invokespecial org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecoderState.<init>:()V
1: aload 0
iconst_0
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.endOfBlock:Z
2: aload 0
iconst_0
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
3: aload 0
iconst_0
newarray 8
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBuffer:[B
4: aload 0
iconst_0
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferLength:I
5: aload 0
aload 2
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
6: aload 0
aload 3
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.buildTree:([I)Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.lengthTree:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
7: aload 0
aload 4
invokestatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.buildTree:([I)Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.distanceTree:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
8: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
0 9 2 state Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
0 9 3 lengths [I
0 9 4 distance [I
MethodParameters:
Name Flags
this$0 final
state
lengths
distance
org.apache.commons.compress.compressors.deflate64.HuffmanState state();
descriptor: ()Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.endOfBlock:Z
ifeq 1
getstatic org.apache.commons.compress.compressors.deflate64.HuffmanState.INITIAL:Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.state:Lorg/apache/commons/compress/compressors/deflate64/HuffmanState;
StackMap locals:
StackMap stack: org.apache.commons.compress.compressors.deflate64.HuffmanState
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.decodeNext:([BII)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
0 1 1 b [B
0 1 2 off I
0 1 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
private int decodeNext(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.endOfBlock:Z
ifeq 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.copyFromRunBuffer:([BII)I
istore 4
start local 4 3: goto 27
4: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.lengthTree:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
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 5
start local 5 5: iload 5
sipush 256
if_icmpge 8
6: aload 1
iload 2
iload 4
iinc 4 1
iadd
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.memory:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecodingMemory;
iload 5
i2b
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory.add:(B)B
bastore
7: goto 27
StackMap locals: int
StackMap stack:
8: iload 5
sipush 256
if_icmple 25
9: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.RUN_LENGTH_TABLE:[S
iload 5
sipush 257
isub
saload
istore 6
start local 6 10: iload 6
iconst_5
iushr
istore 7
start local 7 11: iload 6
bipush 31
iand
istore 8
start local 8 12: iload 7
i2l
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
iload 8
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
ladd
l2i
istore 7
13: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.reader:Lorg/apache/commons/compress/utils/BitInputStream;
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.distanceTree:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$BinaryTreeNode;
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 9
start local 9 14: getstatic org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.DISTANCE_TABLE:[I
iload 9
iaload
istore 10
start local 10 15: iload 10
iconst_4
iushr
istore 11
start local 11 16: iload 10
bipush 15
iand
istore 12
start local 12 17: iload 11
i2l
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
iload 12
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.readBits:(I)J
ladd
l2i
istore 11
18: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBuffer:[B
arraylength
iload 7
if_icmpge 20
19: aload 0
iload 7
newarray 8
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBuffer:[B
20: StackMap locals: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes byte[] int int int int int int int int int int int
StackMap stack:
aload 0
iload 7
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferLength:I
21: aload 0
iconst_0
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
22: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.this$0:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder;
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder.memory:Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$DecodingMemory;
iload 11
iload 7
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBuffer:[B
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$DecodingMemory.recordToBuffer:(II[B)V
23: iload 4
aload 0
aload 1
iload 2
iload 4
iadd
iload 3
iload 4
isub
invokevirtual org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.copyFromRunBuffer:([BII)I
iadd
istore 4
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 24: goto 27
25: StackMap locals: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes byte[] int int int int
StackMap stack:
aload 0
iconst_1
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.endOfBlock:Z
26: iload 4
ireturn
end local 5 27: StackMap locals:
StackMap stack:
iload 4
iload 3
if_icmplt 4
28: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
0 29 1 b [B
0 29 2 off I
0 29 3 len I
3 29 4 result I
5 27 5 symbol I
10 24 6 runMask I
11 24 7 run I
12 24 8 runXtra I
14 24 9 distSym I
15 24 10 distMask I
16 24 11 dist I
17 24 12 distXtra I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
private int copyFromRunBuffer(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferLength:I
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
isub
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: iload 4
ifle 6
3: iload 3
iload 4
invokestatic java.lang.Math.min:(II)I
istore 5
4: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBuffer:[B
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
aload 1
iload 2
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 0
dup
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
iload 5
iadd
putfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
6: StackMap locals: int int
StackMap stack:
iload 5
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 7 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
0 7 1 b [B
0 7 2 off I
0 7 3 len I
1 7 4 bytesInBuffer I
2 7 5 copiedBytes I
MethodParameters:
Name Flags
b
off
len
boolean hasData();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.endOfBlock:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
int available();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferLength:I
aload 0
getfield org.apache.commons.compress.compressors.deflate64.HuffmanDecoder$HuffmanCodes.runBufferPos:I
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/compress/compressors/deflate64/HuffmanDecoder$HuffmanCodes;
}
SourceFile: "HuffmanDecoder.java"
NestHost: org.apache.commons.compress.compressors.deflate64.HuffmanDecoder
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