public class io.netty.handler.codec.compression.FastLzFrameDecoder extends io.netty.handler.codec.ByteToMessageDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.compression.FastLzFrameDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private io.netty.handler.codec.compression.FastLzFrameDecoder$State currentState;
descriptor: Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
flags: (0x0002) ACC_PRIVATE
private final java.util.zip.Checksum checksum;
descriptor: Ljava/util/zip/Checksum;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int chunkLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int originalLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean isCompressed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean hasChecksum;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int currentChecksum;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$compression$FastLzFrameDecoder$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial io.netty.handler.codec.compression.FastLzFrameDecoder.<init>:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/compression/FastLzFrameDecoder;
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
ifeq 1
new java.util.zip.Adler32
dup
invokespecial java.util.zip.Adler32.<init>:()V
goto 2
StackMap locals:
StackMap stack: uninitialized-this
1: aconst_null
StackMap locals: uninitialized-this int
StackMap stack: uninitialized-this java.util.zip.Adler32
2: invokespecial io.netty.handler.codec.compression.FastLzFrameDecoder.<init>:(Ljava/util/zip/Checksum;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/compression/FastLzFrameDecoder;
0 4 1 validateChecksums Z
MethodParameters:
Name Flags
validateChecksums
public void <init>(java.util.zip.Checksum);
descriptor: (Ljava/util/zip/Checksum;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.INIT_BLOCK:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentState:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
2: aload 0
aload 1
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.checksum:Ljava/util/zip/Checksum;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/compression/FastLzFrameDecoder;
0 4 1 checksum Ljava/util/zip/Checksum;
MethodParameters:
Name Flags
checksum
protected void decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List<java.lang.Object>);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic io.netty.handler.codec.compression.FastLzFrameDecoder.$SWITCH_TABLE$io$netty$handler$codec$compression$FastLzFrameDecoder$State:()[I
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentState:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
invokevirtual io.netty.handler.codec.compression.FastLzFrameDecoder$State.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 1
2: 14
3: 28
4: 83
default: 85
}
1: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iconst_4
if_icmpge 3
2: goto 89
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedMedium:()I
istore 4
start local 4 4: iload 4
ldc 4607066
if_icmpeq 6
5: new io.netty.handler.codec.compression.DecompressionException
dup
ldc "unexpected block identifier"
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readByte:()B
istore 5
start local 5 7: aload 0
iload 5
iconst_1
iand
iconst_1
if_icmpne 8
iconst_1
goto 9
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int int
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder
8: iconst_0
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int int
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder int
9: putfield io.netty.handler.codec.compression.FastLzFrameDecoder.isCompressed:Z
10: aload 0
iload 5
bipush 16
iand
bipush 16
if_icmpne 11
iconst_1
goto 12
StackMap locals:
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder
11: iconst_0
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List int int
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder int
12: putfield io.netty.handler.codec.compression.FastLzFrameDecoder.hasChecksum:Z
13: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.INIT_BLOCK_PARAMS:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentState:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iconst_2
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.isCompressed:Z
ifeq 15
iconst_2
goto 16
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack: int int
15: iconst_0
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack: int int int
16: iadd
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.hasChecksum:Z
ifeq 17
iconst_4
goto 18
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack: int int
17: iconst_0
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack: int int int
18: iadd
if_icmpge 20
19: goto 89
20: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.hasChecksum:Z
ifeq 21
aload 2
invokevirtual io.netty.buffer.ByteBuf.readInt:()I
goto 22
StackMap locals:
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder
21: iconst_0
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder int
22: putfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentChecksum:I
23: aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.chunkLength:I
24: aload 0
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.isCompressed:Z
ifeq 25
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
goto 26
StackMap locals:
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder
25: aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.chunkLength:I
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack: io.netty.handler.codec.compression.FastLzFrameDecoder int
26: putfield io.netty.handler.codec.compression.FastLzFrameDecoder.originalLength:I
27: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.DECOMPRESS_DATA:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentState:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
28: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.chunkLength:I
istore 6
start local 6 29: aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iload 6
if_icmpge 31
30: goto 89
31: StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 7
start local 7 32: aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.originalLength:I
istore 8
start local 8 33: iload 8
ifeq 38
34: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
iload 8
iload 8
invokeinterface io.netty.buffer.ByteBufAllocator.heapBuffer:(II)Lio/netty/buffer/ByteBuf;
astore 9
start local 9 35: aload 9
invokevirtual io.netty.buffer.ByteBuf.array:()[B
astore 10
start local 10 36: aload 9
invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
aload 9
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
iadd
istore 11
start local 11 37: goto 41
end local 11 end local 10 end local 9 38: StackMap locals: int int
StackMap stack:
aconst_null
astore 9
start local 9 39: getstatic io.netty.util.internal.EmptyArrays.EMPTY_BYTES:[B
astore 10
start local 10 40: iconst_0
istore 11
start local 11 41: StackMap locals: io.netty.buffer.ByteBuf byte[] int
StackMap stack:
iconst_0
istore 12
start local 12 42: aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.isCompressed:Z
ifeq 58
43: aload 2
invokevirtual io.netty.buffer.ByteBuf.hasArray:()Z
ifeq 47
44: aload 2
invokevirtual io.netty.buffer.ByteBuf.array:()[B
astore 13
start local 13 45: aload 2
invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
iload 7
iadd
istore 14
start local 14 46: goto 50
end local 14 end local 13 47: StackMap locals: int
StackMap stack:
iload 6
newarray 8
astore 13
start local 13 48: aload 2
iload 7
aload 13
invokevirtual io.netty.buffer.ByteBuf.getBytes:(I[B)Lio/netty/buffer/ByteBuf;
pop
49: iconst_0
istore 14
start local 14 50: StackMap locals: byte[] int
StackMap stack:
aload 13
iload 14
iload 6
51: aload 10
iload 11
iload 8
52: invokestatic io.netty.handler.codec.compression.FastLz.decompress:([BII[BII)I
istore 15
start local 15 53: iload 8
iload 15
if_icmpeq 59
54: new io.netty.handler.codec.compression.DecompressionException
dup
55: ldc "stream corrupted: originalLength(%d) and actual length(%d) mismatch"
iconst_2
anewarray java.lang.Object
dup
iconst_0
56: iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 15
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
57: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
end local 15 end local 14 end local 13 58: StackMap locals:
StackMap stack:
aload 2
iload 7
aload 10
iload 11
iload 6
invokevirtual io.netty.buffer.ByteBuf.getBytes:(I[BII)Lio/netty/buffer/ByteBuf;
pop
59: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.checksum:Ljava/util/zip/Checksum;
astore 13
start local 13 60: aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.hasChecksum:Z
ifeq 69
aload 13
ifnull 69
61: aload 13
invokeinterface java.util.zip.Checksum.reset:()V
62: aload 13
aload 10
iload 11
iload 8
invokeinterface java.util.zip.Checksum.update:([BII)V
63: aload 13
invokeinterface java.util.zip.Checksum.getValue:()J
l2i
istore 14
start local 14 64: iload 14
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentChecksum:I
if_icmpeq 69
65: new io.netty.handler.codec.compression.DecompressionException
dup
66: ldc "stream corrupted: mismatching checksum: %d (expected: %d)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
67: iload 14
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentChecksum:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
68: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial io.netty.handler.codec.compression.DecompressionException.<init>:(Ljava/lang/String;)V
athrow
end local 14 69: StackMap locals: java.util.zip.Checksum
StackMap stack:
aload 9
ifnull 72
70: aload 9
aload 9
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
iload 8
iadd
invokevirtual io.netty.buffer.ByteBuf.writerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
71: aload 3
aload 9
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
72: StackMap locals:
StackMap stack:
aload 2
iload 6
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
73: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.INIT_BLOCK:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentState:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
74: iconst_1
istore 12
end local 13 75: goto 80
StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int int int io.netty.buffer.ByteBuf byte[] int int
StackMap stack: java.lang.Throwable
76: astore 16
77: iload 12
ifne 79
aload 9
ifnull 79
78: aload 9
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
79: StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int int int io.netty.buffer.ByteBuf byte[] int int top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
80: StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int int int io.netty.buffer.ByteBuf byte[] int int
StackMap stack:
iload 12
ifne 89
aload 9
ifnull 89
81: aload 9
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
82: goto 89
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 83: StackMap locals: io.netty.handler.codec.compression.FastLzFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List
StackMap stack:
aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
84: goto 89
85: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
86: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 87: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.CORRUPTED:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
putfield io.netty.handler.codec.compression.FastLzFrameDecoder.currentState:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
88: aload 4
athrow
end local 4 89: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Lio/netty/handler/codec/compression/FastLzFrameDecoder;
0 90 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 90 2 in Lio/netty/buffer/ByteBuf;
0 90 3 out Ljava/util/List<Ljava/lang/Object;>;
4 14 4 magic I
7 14 5 options B
29 83 6 chunkLength I
32 83 7 idx I
33 83 8 originalLength I
35 38 9 uncompressed Lio/netty/buffer/ByteBuf;
39 83 9 uncompressed Lio/netty/buffer/ByteBuf;
36 38 10 output [B
40 83 10 output [B
37 38 11 outputPtr I
41 83 11 outputPtr I
42 83 12 success Z
45 47 13 input [B
48 58 13 input [B
46 47 14 inputPtr I
50 58 14 inputPtr I
53 58 15 decompressedBytes I
60 75 13 checksum Ljava/util/zip/Checksum;
64 69 14 checksumResult I
87 89 4 e Ljava/lang/Exception;
Exception table:
from to target type
42 76 76 any
0 86 86 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List<Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
ctx
in
out
static int[] $SWITCH_TABLE$io$netty$handler$codec$compression$FastLzFrameDecoder$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.netty.handler.codec.compression.FastLzFrameDecoder.$SWITCH_TABLE$io$netty$handler$codec$compression$FastLzFrameDecoder$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.values:()[Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.CORRUPTED:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
invokevirtual io.netty.handler.codec.compression.FastLzFrameDecoder$State.ordinal:()I
iconst_4
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.DECOMPRESS_DATA:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
invokevirtual io.netty.handler.codec.compression.FastLzFrameDecoder$State.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.INIT_BLOCK:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
invokevirtual io.netty.handler.codec.compression.FastLzFrameDecoder$State.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic io.netty.handler.codec.compression.FastLzFrameDecoder$State.INIT_BLOCK_PARAMS:Lio/netty/handler/codec/compression/FastLzFrameDecoder$State;
invokevirtual io.netty.handler.codec.compression.FastLzFrameDecoder$State.ordinal:()I
iconst_2
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic io.netty.handler.codec.compression.FastLzFrameDecoder.$SWITCH_TABLE$io$netty$handler$codec$compression$FastLzFrameDecoder$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
SourceFile: "FastLzFrameDecoder.java"
NestMembers:
io.netty.handler.codec.compression.FastLzFrameDecoder$State
InnerClasses:
private final State = io.netty.handler.codec.compression.FastLzFrameDecoder$State of io.netty.handler.codec.compression.FastLzFrameDecoder