public class io.netty.handler.codec.compression.LzfDecoder 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.LzfDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private io.netty.handler.codec.compression.LzfDecoder$State currentState;
descriptor: Lio/netty/handler/codec/compression/LzfDecoder$State;
flags: (0x0002) ACC_PRIVATE
private static final short MAGIC_NUMBER;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 23126
private com.ning.compress.lzf.ChunkDecoder decoder;
descriptor: Lcom/ning/compress/lzf/ChunkDecoder;
flags: (0x0002) ACC_PRIVATE
private com.ning.compress.BufferRecycler recycler;
descriptor: Lcom/ning/compress/BufferRecycler;
flags: (0x0002) ACC_PRIVATE
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 static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$compression$LzfDecoder$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.LzfDecoder.<init>:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/compression/LzfDecoder;
public void <init>(boolean);
descriptor: (Z)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.LzfDecoder$State.INIT_BLOCK:Lio/netty/handler/codec/compression/LzfDecoder$State;
putfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
2: aload 0
iload 1
ifeq 4
3: invokestatic com.ning.compress.lzf.util.ChunkDecoderFactory.safeInstance:()Lcom/ning/compress/lzf/ChunkDecoder;
goto 5
4: StackMap locals: io.netty.handler.codec.compression.LzfDecoder int
StackMap stack: io.netty.handler.codec.compression.LzfDecoder
invokestatic com.ning.compress.lzf.util.ChunkDecoderFactory.optimalInstance:()Lcom/ning/compress/lzf/ChunkDecoder;
5: StackMap locals: io.netty.handler.codec.compression.LzfDecoder int
StackMap stack: io.netty.handler.codec.compression.LzfDecoder com.ning.compress.lzf.ChunkDecoder
putfield io.netty.handler.codec.compression.LzfDecoder.decoder:Lcom/ning/compress/lzf/ChunkDecoder;
6: aload 0
invokestatic com.ning.compress.BufferRecycler.instance:()Lcom/ning/compress/BufferRecycler;
putfield io.netty.handler.codec.compression.LzfDecoder.recycler:Lcom/ning/compress/BufferRecycler;
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/handler/codec/compression/LzfDecoder;
0 8 1 safeInstance Z
MethodParameters:
Name Flags
safeInstance
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=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic io.netty.handler.codec.compression.LzfDecoder.$SWITCH_TABLE$io$netty$handler$codec$compression$LzfDecoder$State:()[I
aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
invokevirtual io.netty.handler.codec.compression.LzfDecoder$State.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 1
2: 21
3: 25
4: 61
default: 63
}
1: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iconst_5
if_icmpge 3
2: goto 69
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
istore 4
start local 4 4: iload 4
sipush 23126
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: iload 5
tableswitch { // 0 - 1
0: 8
1: 11
default: 14
}
8: StackMap locals: int
StackMap stack:
aload 0
iconst_0
putfield io.netty.handler.codec.compression.LzfDecoder.isCompressed:Z
9: aload 0
getstatic io.netty.handler.codec.compression.LzfDecoder$State.DECOMPRESS_DATA:Lio/netty/handler/codec/compression/LzfDecoder$State;
putfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
10: goto 18
11: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.netty.handler.codec.compression.LzfDecoder.isCompressed:Z
12: aload 0
getstatic io.netty.handler.codec.compression.LzfDecoder$State.INIT_ORIGINAL_LENGTH:Lio/netty/handler/codec/compression/LzfDecoder$State;
putfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
13: goto 18
14: StackMap locals:
StackMap stack:
new io.netty.handler.codec.compression.DecompressionException
dup
15: ldc "unknown type of chunk: %d (expected: %d or %d)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
16: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
17: 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
18: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
putfield io.netty.handler.codec.compression.LzfDecoder.chunkLength:I
19: iload 5
iconst_1
if_icmpeq 21
20: goto 69
end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iconst_2
if_icmpge 23
22: goto 69
23: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
putfield io.netty.handler.codec.compression.LzfDecoder.originalLength:I
24: aload 0
getstatic io.netty.handler.codec.compression.LzfDecoder$State.DECOMPRESS_DATA:Lio/netty/handler/codec/compression/LzfDecoder$State;
putfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
25: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.chunkLength:I
istore 6
start local 6 26: aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iload 6
if_icmpge 28
27: goto 69
28: StackMap locals: io.netty.handler.codec.compression.LzfDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.originalLength:I
istore 7
start local 7 29: aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.isCompressed:Z
ifeq 57
30: aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 8
start local 8 31: aload 2
invokevirtual io.netty.buffer.ByteBuf.hasArray:()Z
ifeq 35
32: aload 2
invokevirtual io.netty.buffer.ByteBuf.array:()[B
astore 9
start local 9 33: aload 2
invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
iload 8
iadd
istore 10
start local 10 34: goto 38
end local 10 end local 9 35: StackMap locals: int int
StackMap stack:
aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.recycler:Lcom/ning/compress/BufferRecycler;
iload 6
invokevirtual com.ning.compress.BufferRecycler.allocInputBuffer:(I)[B
astore 9
start local 9 36: aload 2
iload 8
aload 9
iconst_0
iload 6
invokevirtual io.netty.buffer.ByteBuf.getBytes:(I[BII)Lio/netty/buffer/ByteBuf;
pop
37: iconst_0
istore 10
start local 10 38: StackMap locals: byte[] int
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
iload 7
iload 7
invokeinterface io.netty.buffer.ByteBufAllocator.heapBuffer:(II)Lio/netty/buffer/ByteBuf;
astore 11
start local 11 39: aload 11
invokevirtual io.netty.buffer.ByteBuf.array:()[B
astore 12
start local 12 40: aload 11
invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
aload 11
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
iadd
istore 13
start local 13 41: iconst_0
istore 14
start local 14 42: aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.decoder:Lcom/ning/compress/lzf/ChunkDecoder;
aload 9
iload 10
aload 12
iload 13
iload 13
iload 7
iadd
invokevirtual com.ning.compress.lzf.ChunkDecoder.decodeChunk:([BI[BII)V
43: aload 11
aload 11
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
iload 7
iadd
invokevirtual io.netty.buffer.ByteBuf.writerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
44: aload 3
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
45: aload 2
iload 6
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
46: iconst_1
istore 14
47: goto 52
StackMap locals: io.netty.handler.codec.compression.LzfDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int int int byte[] int io.netty.buffer.ByteBuf byte[] int int
StackMap stack: java.lang.Throwable
48: astore 15
49: iload 14
ifne 51
50: aload 11
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
51: StackMap locals: java.lang.Throwable
StackMap stack:
aload 15
athrow
52: StackMap locals:
StackMap stack:
iload 14
ifne 54
53: aload 11
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
54: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.hasArray:()Z
ifne 59
55: aload 0
getfield io.netty.handler.codec.compression.LzfDecoder.recycler:Lcom/ning/compress/BufferRecycler;
aload 9
invokevirtual com.ning.compress.BufferRecycler.releaseInputBuffer:([B)V
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 56: goto 59
StackMap locals: io.netty.handler.codec.compression.LzfDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf java.util.List top top int int
StackMap stack:
57: iload 6
ifle 59
58: aload 3
aload 2
iload 6
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
59: StackMap locals:
StackMap stack:
aload 0
getstatic io.netty.handler.codec.compression.LzfDecoder$State.INIT_BLOCK:Lio/netty/handler/codec/compression/LzfDecoder$State;
putfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
60: goto 69
end local 7 end local 6 61: StackMap locals: io.netty.handler.codec.compression.LzfDecoder 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
62: goto 69
63: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
64: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 65: aload 0
getstatic io.netty.handler.codec.compression.LzfDecoder$State.CORRUPTED:Lio/netty/handler/codec/compression/LzfDecoder$State;
putfield io.netty.handler.codec.compression.LzfDecoder.currentState:Lio/netty/handler/codec/compression/LzfDecoder$State;
66: aload 0
aconst_null
putfield io.netty.handler.codec.compression.LzfDecoder.decoder:Lcom/ning/compress/lzf/ChunkDecoder;
67: aload 0
aconst_null
putfield io.netty.handler.codec.compression.LzfDecoder.recycler:Lcom/ning/compress/BufferRecycler;
68: aload 4
athrow
end local 4 69: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lio/netty/handler/codec/compression/LzfDecoder;
0 70 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 70 2 in Lio/netty/buffer/ByteBuf;
0 70 3 out Ljava/util/List<Ljava/lang/Object;>;
4 21 4 magic I
7 21 5 type I
26 61 6 chunkLength I
29 61 7 originalLength I
31 56 8 idx I
33 35 9 inputArray [B
36 56 9 inputArray [B
34 35 10 inPos I
38 56 10 inPos I
39 56 11 uncompressed Lio/netty/buffer/ByteBuf;
40 56 12 outputArray [B
41 56 13 outPos I
42 56 14 success Z
65 69 4 e Ljava/lang/Exception;
Exception table:
from to target type
42 48 48 any
0 64 64 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$LzfDecoder$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.netty.handler.codec.compression.LzfDecoder.$SWITCH_TABLE$io$netty$handler$codec$compression$LzfDecoder$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.netty.handler.codec.compression.LzfDecoder$State.values:()[Lio/netty/handler/codec/compression/LzfDecoder$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.netty.handler.codec.compression.LzfDecoder$State.CORRUPTED:Lio/netty/handler/codec/compression/LzfDecoder$State;
invokevirtual io.netty.handler.codec.compression.LzfDecoder$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.LzfDecoder$State.DECOMPRESS_DATA:Lio/netty/handler/codec/compression/LzfDecoder$State;
invokevirtual io.netty.handler.codec.compression.LzfDecoder$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.LzfDecoder$State.INIT_BLOCK:Lio/netty/handler/codec/compression/LzfDecoder$State;
invokevirtual io.netty.handler.codec.compression.LzfDecoder$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.LzfDecoder$State.INIT_ORIGINAL_LENGTH:Lio/netty/handler/codec/compression/LzfDecoder$State;
invokevirtual io.netty.handler.codec.compression.LzfDecoder$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.LzfDecoder.$SWITCH_TABLE$io$netty$handler$codec$compression$LzfDecoder$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: "LzfDecoder.java"
NestMembers:
io.netty.handler.codec.compression.LzfDecoder$State
InnerClasses:
private final State = io.netty.handler.codec.compression.LzfDecoder$State of io.netty.handler.codec.compression.LzfDecoder