final class io.netty.handler.codec.compression.Bzip2BlockDecompressor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.compression.Bzip2BlockDecompressor
super_class: java.lang.Object
{
private final io.netty.handler.codec.compression.Bzip2BitReader reader;
descriptor: Lio/netty/handler/codec/compression/Bzip2BitReader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.handler.codec.compression.Crc32 crc;
descriptor: Lio/netty/handler/codec/compression/Crc32;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int blockCRC;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean blockRandomised;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
int huffmanEndOfBlockSymbol;
descriptor: I
flags: (0x0000)
int huffmanInUse16;
descriptor: I
flags: (0x0000)
final byte[] huffmanSymbolMap;
descriptor: [B
flags: (0x0010) ACC_FINAL
private final int[] bwtByteCounts;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] bwtBlock;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int bwtStartPointer;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int[] bwtMergedPointers;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int bwtCurrentMergedPointer;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int bwtBlockLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int bwtBytesDecoded;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int rleLastDecodedByte;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int rleAccumulator;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int rleRepeat;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int randomIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int randomCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final io.netty.handler.codec.compression.Bzip2MoveToFrontTable symbolMTF;
descriptor: Lio/netty/handler/codec/compression/Bzip2MoveToFrontTable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int repeatCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int repeatIncrement;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mtfValue;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(int, int, boolean, int, io.netty.handler.codec.compression.Bzip2BitReader);
descriptor: (IIZILio/netty/handler/codec/compression/Bzip2BitReader;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new io.netty.handler.codec.compression.Crc32
dup
invokespecial io.netty.handler.codec.compression.Crc32.<init>:()V
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.crc:Lio/netty/handler/codec/compression/Crc32;
2: aload 0
sipush 256
newarray 8
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.huffmanSymbolMap:[B
3: aload 0
sipush 256
newarray 10
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtByteCounts:[I
4: aload 0
iconst_m1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleLastDecodedByte:I
5: aload 0
iconst_0
invokestatic io.netty.handler.codec.compression.Bzip2Rand.rNums:(I)I
iconst_1
isub
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomCount:I
6: aload 0
new io.netty.handler.codec.compression.Bzip2MoveToFrontTable
dup
invokespecial io.netty.handler.codec.compression.Bzip2MoveToFrontTable.<init>:()V
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.symbolMTF:Lio/netty/handler/codec/compression/Bzip2MoveToFrontTable;
7: aload 0
iconst_1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.repeatIncrement:I
8: aload 0
iload 1
newarray 8
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlock:[B
9: aload 0
iload 2
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.blockCRC:I
10: aload 0
iload 3
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.blockRandomised:Z
11: aload 0
iload 4
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtStartPointer:I
12: aload 0
aload 5
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.reader:Lio/netty/handler/codec/compression/Bzip2BitReader;
13: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
0 14 1 blockSize I
0 14 2 blockCRC I
0 14 3 blockRandomised Z
0 14 4 bwtStartPointer I
0 14 5 reader Lio/netty/handler/codec/compression/Bzip2BitReader;
MethodParameters:
Name Flags
blockSize final
blockCRC final
blockRandomised final
bwtStartPointer final
reader final
boolean decodeHuffmanData(io.netty.handler.codec.compression.Bzip2HuffmanStageDecoder);
descriptor: (Lio/netty/handler/codec/compression/Bzip2HuffmanStageDecoder;)Z
flags: (0x0000)
Code:
stack=4, locals=15, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.reader:Lio/netty/handler/codec/compression/Bzip2BitReader;
astore 2
start local 2 1: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlock:[B
astore 3
start local 3 2: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.huffmanSymbolMap:[B
astore 4
start local 4 3: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlock:[B
arraylength
istore 5
start local 5 4: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.huffmanEndOfBlockSymbol:I
istore 6
start local 6 5: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtByteCounts:[I
astore 7
start local 7 6: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.symbolMTF:Lio/netty/handler/codec/compression/Bzip2MoveToFrontTable;
astore 8
start local 8 7: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
istore 9
start local 9 8: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.repeatCount:I
istore 10
start local 10 9: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.repeatIncrement:I
istore 11
start local 11 10: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.mtfValue:I
istore 12
start local 12 11: StackMap locals: io.netty.handler.codec.compression.Bzip2BlockDecompressor io.netty.handler.codec.compression.Bzip2HuffmanStageDecoder io.netty.handler.codec.compression.Bzip2BitReader byte[] byte[] int int int[] io.netty.handler.codec.compression.Bzip2MoveToFrontTable int int int int
StackMap stack:
aload 2
bipush 23
invokevirtual io.netty.handler.codec.compression.Bzip2BitReader.hasReadableBits:(I)Z
ifne 17
12: aload 0
iload 9
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
13: aload 0
iload 10
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.repeatCount:I
14: aload 0
iload 11
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.repeatIncrement:I
15: aload 0
iload 12
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.mtfValue:I
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.netty.handler.codec.compression.Bzip2HuffmanStageDecoder.nextSymbol:()I
istore 13
start local 13 18: iload 13
ifne 22
19: iload 10
iload 11
iadd
istore 10
20: iload 11
iconst_1
ishl
istore 11
21: goto 11
StackMap locals: int
StackMap stack:
22: iload 13
iconst_1
if_icmpne 26
23: iload 10
iload 11
iconst_1
ishl
iadd
istore 10
24: iload 11
iconst_1
ishl
istore 11
25: goto 11
26: StackMap locals:
StackMap stack:
iload 10
ifle 36
27: iload 9
iload 10
iadd
iload 5
if_icmple 29
28: new io.netty.handler.codec.compression.DecompressionException
dup
ldc "block exceeds declared block size"
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 4
iload 12
baload
istore 14
start local 14 30: aload 7
iload 14
sipush 255
iand
dup2
iaload
iload 10
iadd
iastore
31: goto 33
32: StackMap locals: int
StackMap stack:
aload 3
iload 9
iinc 9 1
iload 14
bastore
33: StackMap locals:
StackMap stack:
iinc 10 -1
iload 10
ifge 32
34: iconst_0
istore 10
35: iconst_1
istore 11
end local 14 36: StackMap locals:
StackMap stack:
iload 13
iload 6
if_icmpne 38
37: goto 45
38: StackMap locals:
StackMap stack:
iload 9
iload 5
if_icmplt 40
39: new io.netty.handler.codec.compression.DecompressionException
dup
ldc "block exceeds declared block size"
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
40: StackMap locals:
StackMap stack:
aload 8
iload 13
iconst_1
isub
invokevirtual io.netty.handler.codec.compression.Bzip2MoveToFrontTable.indexToFront:(I)B
sipush 255
iand
istore 12
41: aload 4
iload 12
baload
istore 14
start local 14 42: aload 7
iload 14
sipush 255
iand
dup2
iaload
iconst_1
iadd
iastore
43: aload 3
iload 9
iinc 9 1
iload 14
bastore
end local 14 end local 13 44: goto 11
45: StackMap locals:
StackMap stack:
aload 0
iload 9
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
46: aload 0
invokevirtual io.netty.handler.codec.compression.Bzip2BlockDecompressor.initialiseInverseBWT:()V
47: iconst_1
ireturn
end local 12 end local 11 end local 10 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 48 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
0 48 1 huffmanDecoder Lio/netty/handler/codec/compression/Bzip2HuffmanStageDecoder;
1 48 2 reader Lio/netty/handler/codec/compression/Bzip2BitReader;
2 48 3 bwtBlock [B
3 48 4 huffmanSymbolMap [B
4 48 5 streamBlockSize I
5 48 6 huffmanEndOfBlockSymbol I
6 48 7 bwtByteCounts [I
7 48 8 symbolMTF Lio/netty/handler/codec/compression/Bzip2MoveToFrontTable;
8 48 9 bwtBlockLength I
9 48 10 repeatCount I
10 48 11 repeatIncrement I
11 48 12 mtfValue I
18 44 13 nextSymbol I
30 36 14 nextByte B
42 44 14 nextByte B
MethodParameters:
Name Flags
huffmanDecoder final
private void initialiseInverseBWT();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtStartPointer:I
istore 1
start local 1 1: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlock:[B
astore 2
start local 2 2: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
newarray 10
astore 3
start local 3 3: sipush 256
newarray 10
astore 4
start local 4 4: iload 1
iflt 5
iload 1
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
if_icmplt 6
5: StackMap locals: io.netty.handler.codec.compression.Bzip2BlockDecompressor int byte[] int[] int[]
StackMap stack:
new io.netty.handler.codec.compression.DecompressionException
dup
ldc "start pointer invalid"
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtByteCounts:[I
iconst_0
aload 4
iconst_1
sipush 255
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: iconst_2
istore 5
start local 5 8: goto 11
9: StackMap locals: int
StackMap stack:
aload 4
iload 5
dup2
iaload
aload 4
iload 5
iconst_1
isub
iaload
iadd
iastore
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
sipush 255
if_icmple 9
end local 5 12: iconst_0
istore 5
start local 5 13: goto 17
14: StackMap locals:
StackMap stack:
aload 2
iload 5
baload
sipush 255
iand
istore 6
start local 6 15: aload 3
aload 4
iload 6
dup2
iaload
dup_x2
iconst_1
iadd
iastore
iload 5
bipush 8
ishl
iload 6
iadd
iastore
end local 6 16: iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
if_icmplt 14
end local 5 18: aload 0
aload 3
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtMergedPointers:[I
19: aload 0
aload 3
iload 1
iaload
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtCurrentMergedPointer:I
20: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
1 21 1 bwtStartPointer I
2 21 2 bwtBlock [B
3 21 3 bwtMergedPointers [I
4 21 4 characterBase [I
8 12 5 i I
13 18 5 i I
15 16 6 value I
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: goto 18
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBytesDecoded:I
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
if_icmpne 3
2: iconst_m1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.handler.codec.compression.Bzip2BlockDecompressor.decodeNextBWTByte:()I
istore 1
start local 1 4: iload 1
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleLastDecodedByte:I
if_icmpeq 10
5: aload 0
iload 1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleLastDecodedByte:I
6: aload 0
iconst_1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleRepeat:I
7: aload 0
iconst_1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleAccumulator:I
8: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.crc:Lio/netty/handler/codec/compression/Crc32;
iload 1
invokevirtual io.netty.handler.codec.compression.Crc32.updateCRC:(I)V
9: goto 18
10: StackMap locals: int
StackMap stack:
aload 0
dup
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleAccumulator:I
iconst_1
iadd
dup_x1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleAccumulator:I
iconst_4
if_icmpne 16
11: aload 0
invokevirtual io.netty.handler.codec.compression.Bzip2BlockDecompressor.decodeNextBWTByte:()I
iconst_1
iadd
istore 2
start local 2 12: aload 0
iload 2
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleRepeat:I
13: aload 0
iconst_0
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleAccumulator:I
14: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.crc:Lio/netty/handler/codec/compression/Crc32;
iload 1
iload 2
invokevirtual io.netty.handler.codec.compression.Crc32.updateCRC:(II)V
end local 2 15: goto 18
16: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleRepeat:I
17: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.crc:Lio/netty/handler/codec/compression/Crc32;
iload 1
invokevirtual io.netty.handler.codec.compression.Crc32.updateCRC:(I)V
end local 1 18: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleRepeat:I
iconst_1
if_icmplt 1
19: aload 0
dup
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleRepeat:I
iconst_1
isub
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleRepeat:I
20: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.rleLastDecodedByte:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
4 18 1 nextByte I
12 15 2 rleRepeat I
private int decodeNextBWTByte();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtCurrentMergedPointer:I
istore 1
start local 1 1: iload 1
sipush 255
iand
istore 2
start local 2 2: aload 0
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtMergedPointers:[I
iload 1
bipush 8
iushr
iaload
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtCurrentMergedPointer:I
3: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.blockRandomised:Z
ifeq 8
4: aload 0
dup
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomCount:I
iconst_1
isub
dup_x1
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomCount:I
ifne 8
5: iload 2
iconst_1
ixor
istore 2
6: aload 0
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomIndex:I
iconst_1
iadd
sipush 512
irem
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomIndex:I
7: aload 0
aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomIndex:I
invokestatic io.netty.handler.codec.compression.Bzip2Rand.rNums:(I)I
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.randomCount:I
8: StackMap locals: int int
StackMap stack:
aload 0
dup
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBytesDecoded:I
iconst_1
iadd
putfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBytesDecoded:I
9: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
1 10 1 mergedPointer I
2 10 2 nextDecodedByte I
public int blockLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.bwtBlockLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
int checkCRC();
descriptor: ()I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.crc:Lio/netty/handler/codec/compression/Crc32;
invokevirtual io.netty.handler.codec.compression.Crc32.getCRC:()I
istore 1
start local 1 1: aload 0
getfield io.netty.handler.codec.compression.Bzip2BlockDecompressor.blockCRC:I
iload 1
if_icmpeq 3
2: new io.netty.handler.codec.compression.DecompressionException
dup
ldc "block CRC error"
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/compression/Bzip2BlockDecompressor;
1 4 1 computedBlockCRC I
}
SourceFile: "Bzip2BlockDecompressor.java"