final class io.netty.handler.codec.compression.FastLz
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.compression.FastLz
super_class: java.lang.Object
{
private static final int MAX_DISTANCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8191
private static final int MAX_FARDISTANCE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 73725
private static final int HASH_LOG;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 13
private static final int HASH_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private static final int HASH_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8191
private static final int MAX_COPY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int MAX_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 264
private static final int MIN_RECOMENDED_LENGTH_FOR_LEVEL_2;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
static final int MAGIC_NUMBER;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4607066
static final byte BLOCK_TYPE_NON_COMPRESSED;
descriptor: B
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final byte BLOCK_TYPE_COMPRESSED;
descriptor: B
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final byte BLOCK_WITHOUT_CHECKSUM;
descriptor: B
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final byte BLOCK_WITH_CHECKSUM;
descriptor: B
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static final int OPTIONS_OFFSET;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int CHECKSUM_OFFSET;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int MAX_CHUNK_LENGTH;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65535
static final int MIN_LENGTH_TO_COMPRESSION;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 32
static final int LEVEL_AUTO;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int LEVEL_1;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int LEVEL_2;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static int calculateOutputBufferLength(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 // int inputLength
0: .line 83
iload 0 /* inputLength */
i2d
ldc 1.06
dmul
d2i
istore 1 /* outputLength */
start local 1 // int outputLength
1: .line 84
iload 1 /* outputLength */
bipush 66
invokestatic java.lang.Math.max:(II)I
ireturn
end local 1 // int outputLength
end local 0 // int inputLength
LocalVariableTable:
Start End Slot Name Signature
0 2 0 inputLength I
1 2 1 outputLength I
MethodParameters:
Name Flags
inputLength
static int compress(byte[], int, int, byte[], int, int);
descriptor: ([BII[BII)I
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=22, args_size=6
start local 0 // byte[] input
start local 1 // int inOffset
start local 2 // int inLength
start local 3 // byte[] output
start local 4 // int outOffset
start local 5 // int proposedLevel
0: .line 97
iload 5 /* proposedLevel */
ifne 5
1: .line 98
iload 2 /* inLength */
ldc 65536
if_icmpge 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_2
StackMap locals:
StackMap stack: int
3: istore 6 /* level */
start local 6 // int level
4: .line 99
goto 6
end local 6 // int level
5: .line 100
StackMap locals:
StackMap stack:
iload 5 /* proposedLevel */
istore 6 /* level */
start local 6 // int level
6: .line 103
StackMap locals: int
StackMap stack:
iconst_0
istore 7 /* ip */
start local 7 // int ip
7: .line 104
iload 7 /* ip */
iload 2 /* inLength */
iadd
iconst_2
isub
istore 8 /* ipBound */
start local 8 // int ipBound
8: .line 105
iload 7 /* ip */
iload 2 /* inLength */
iadd
bipush 12
isub
istore 9 /* ipLimit */
start local 9 // int ipLimit
9: .line 107
iconst_0
istore 10 /* op */
start local 10 // int op
10: .line 110
sipush 8192
newarray 10
astore 11 /* htab */
start local 11 // int[] htab
11: .line 121
iload 2 /* inLength */
iconst_4
if_icmpge 20
12: .line 122
iload 2 /* inLength */
ifeq 19
13: .line 124
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 2 /* inLength */
iconst_1
isub
i2b
bastore
14: .line 125
iinc 8 /* ipBound */ 1
15: .line 126
goto 17
16: .line 127
StackMap locals: byte[] int int byte[] int int int int int int int int[]
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bastore
17: .line 126
StackMap locals:
StackMap stack:
iload 7 /* ip */
iload 8 /* ipBound */
if_icmple 16
18: .line 129
iload 2 /* inLength */
iconst_1
iadd
ireturn
19: .line 132
StackMap locals:
StackMap stack:
iconst_0
ireturn
20: .line 137
StackMap locals:
StackMap stack:
iconst_0
istore 12 /* hslot */
start local 12 // int hslot
21: goto 24
22: .line 139
StackMap locals: int
StackMap stack:
aload 11 /* htab */
iload 12 /* hslot */
iload 7 /* ip */
iastore
23: .line 137
iinc 12 /* hslot */ 1
StackMap locals:
StackMap stack:
24: iload 12 /* hslot */
sipush 8192
if_icmplt 22
25: .line 143
iconst_2
istore 14 /* copy */
start local 14 // int copy
26: .line 144
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
bipush 31
bastore
27: .line 145
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bastore
28: .line 146
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bastore
29: .line 149
goto 160
30: .line 150
StackMap locals: byte[] int int byte[] int int int int int int int int[] int top int
StackMap stack:
iconst_0
istore 15 /* ref */
start local 15 // int ref
31: .line 152
lconst_0
lstore 16 /* distance */
start local 16 // long distance
32: .line 157
iconst_3
istore 18 /* len */
start local 18 // int len
33: .line 160
iload 7 /* ip */
istore 19 /* anchor */
start local 19 // int anchor
34: .line 162
iconst_0
istore 20 /* matchLabel */
start local 20 // boolean matchLabel
35: .line 165
iload 6 /* level */
iconst_2
if_icmpne 42
36: .line 167
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
iconst_1
isub
baload
if_icmpne 42
37: .line 168
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
iconst_1
isub
invokestatic io.netty.handler.codec.compression.FastLz.readU16:([BI)I
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
iconst_1
iadd
invokestatic io.netty.handler.codec.compression.FastLz.readU16:([BI)I
if_icmpne 42
38: .line 169
lconst_1
lstore 16 /* distance */
39: .line 170
iinc 7 /* ip */ 3
40: .line 171
iload 19 /* anchor */
iconst_2
iadd
istore 15 /* ref */
41: .line 176
iconst_1
istore 20 /* matchLabel */
42: .line 179
StackMap locals: byte[] int int byte[] int int int int int int int int[] int top int int long int int int
StackMap stack:
iload 20 /* matchLabel */
ifne 73
43: .line 182
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
invokestatic io.netty.handler.codec.compression.FastLz.hashFunction:([BI)I
istore 13 /* hval */
start local 13 // int hval
44: .line 184
iload 13 /* hval */
istore 12 /* hslot */
45: .line 186
aload 11 /* htab */
iload 13 /* hval */
iaload
istore 15 /* ref */
46: .line 189
iload 19 /* anchor */
iload 15 /* ref */
isub
i2l
lstore 16 /* distance */
47: .line 193
aload 11 /* htab */
iload 12 /* hslot */
iload 19 /* anchor */
iastore
48: .line 196
lload 16 /* distance */
lconst_0
lcmp
ifeq 54
49: .line 197
iload 6 /* level */
iconst_1
if_icmpne 50
lload 16 /* distance */
ldc 8191
lcmp
ifge 54
goto 51
StackMap locals: byte[] int int byte[] int int int int int int int int[] int int int int long int int int
StackMap stack:
50: lload 16 /* distance */
ldc 73725
lcmp
ifge 54
51: .line 198
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpne 54
52: .line 199
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpne 54
53: .line 200
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 61
54: .line 204
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 19 /* anchor */
iinc 19 /* anchor */ 1
iadd
baload
bastore
55: .line 205
iload 19 /* anchor */
istore 7 /* ip */
56: .line 206
iinc 14 /* copy */ 1
57: .line 207
iload 14 /* copy */
bipush 32
if_icmpne 160
58: .line 208
iconst_0
istore 14 /* copy */
59: .line 209
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
bipush 31
bastore
60: .line 211
goto 160
61: .line 214
StackMap locals:
StackMap stack:
iload 6 /* level */
iconst_2
if_icmpne 73
62: .line 216
lload 16 /* distance */
ldc 8191
lcmp
iflt 73
63: .line 217
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
if_icmpne 65
64: .line 218
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
if_icmpeq 72
65: .line 222
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 19 /* anchor */
iinc 19 /* anchor */ 1
iadd
baload
bastore
66: .line 223
iload 19 /* anchor */
istore 7 /* ip */
67: .line 224
iinc 14 /* copy */ 1
68: .line 225
iload 14 /* copy */
bipush 32
if_icmpne 160
69: .line 226
iconst_0
istore 14 /* copy */
70: .line 227
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
bipush 31
bastore
71: .line 229
goto 160
72: .line 231
StackMap locals:
StackMap stack:
iinc 18 /* len */ 2
end local 13 // int hval
73: .line 239
StackMap locals: byte[] int int byte[] int int int int int int int int[] int top int int long int int int
StackMap stack:
iload 19 /* anchor */
iload 18 /* len */
iadd
istore 7 /* ip */
74: .line 242
lload 16 /* distance */
lconst_1
lsub
lstore 16 /* distance */
75: .line 244
lload 16 /* distance */
lconst_0
lcmp
ifne 83
76: .line 247
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
iconst_1
isub
baload
istore 21 /* x */
start local 21 // byte x
77: .line 248
goto 81
78: .line 249
StackMap locals: int
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
iload 21 /* x */
if_icmpeq 80
79: .line 250
goto 102
80: .line 252
StackMap locals:
StackMap stack:
iinc 7 /* ip */ 1
81: .line 248
StackMap locals:
StackMap stack:
iload 7 /* ip */
iload 8 /* ipBound */
if_icmplt 78
end local 21 // byte x
82: .line 255
goto 102
83: .line 258
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 85
84: .line 259
goto 102
85: .line 261
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 87
86: .line 262
goto 102
87: .line 264
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 89
88: .line 265
goto 102
89: .line 267
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 91
90: .line 268
goto 102
91: .line 270
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 93
92: .line 271
goto 102
93: .line 273
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 95
94: .line 274
goto 102
95: .line 276
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 97
96: .line 277
goto 102
97: .line 279
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 101
98: .line 280
goto 102
99: .line 283
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 15 /* ref */
iinc 15 /* ref */ 1
iadd
baload
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
if_icmpeq 101
100: .line 284
goto 102
101: .line 282
StackMap locals:
StackMap stack:
iload 7 /* ip */
iload 8 /* ipBound */
if_icmplt 99
102: .line 292
StackMap locals:
StackMap stack:
iload 14 /* copy */
ifeq 105
103: .line 295
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iadd
iload 14 /* copy */
isub
iconst_1
isub
iload 14 /* copy */
iconst_1
isub
i2b
bastore
104: .line 296
goto 106
105: .line 298
StackMap locals:
StackMap stack:
iinc 10 /* op */ -1
106: .line 302
StackMap locals:
StackMap stack:
iconst_0
istore 14 /* copy */
107: .line 305
iinc 7 /* ip */ -3
108: .line 306
iload 7 /* ip */
iload 19 /* anchor */
isub
istore 18 /* len */
109: .line 309
iload 6 /* level */
iconst_2
if_icmpne 141
110: .line 310
lload 16 /* distance */
ldc 8191
lcmp
ifge 123
111: .line 311
iload 18 /* len */
bipush 7
if_icmpge 115
112: .line 312
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 18 /* len */
iconst_5
ishl
i2l
lload 16 /* distance */
bipush 8
lushr
ladd
l2i
i2b
bastore
113: .line 313
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
114: .line 314
goto 155
115: .line 315
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
ldc 224
lload 16 /* distance */
bipush 8
lushr
ladd
l2i
i2b
bastore
116: .line 316
iinc 18 /* len */ -7
goto 119
117: .line 317
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iconst_m1
bastore
118: .line 316
iinc 18 /* len */ -255
StackMap locals:
StackMap stack:
119: iload 18 /* len */
sipush 255
if_icmpge 117
120: .line 319
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 18 /* len */
i2b
bastore
121: .line 320
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
122: .line 322
goto 155
123: .line 324
StackMap locals:
StackMap stack:
iload 18 /* len */
bipush 7
if_icmpge 130
124: .line 325
lload 16 /* distance */
ldc 8191
lsub
lstore 16 /* distance */
125: .line 326
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 18 /* len */
iconst_5
ishl
bipush 31
iadd
i2b
bastore
126: .line 327
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iconst_m1
bastore
127: .line 328
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
bipush 8
lushr
l2i
i2b
bastore
128: .line 329
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
129: .line 330
goto 155
130: .line 331
StackMap locals:
StackMap stack:
lload 16 /* distance */
ldc 8191
lsub
lstore 16 /* distance */
131: .line 332
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iconst_m1
bastore
132: .line 333
iinc 18 /* len */ -7
goto 135
133: .line 334
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iconst_m1
bastore
134: .line 333
iinc 18 /* len */ -255
StackMap locals:
StackMap stack:
135: iload 18 /* len */
sipush 255
if_icmpge 133
136: .line 336
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 18 /* len */
i2b
bastore
137: .line 337
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iconst_m1
bastore
138: .line 338
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
bipush 8
lushr
l2i
i2b
bastore
139: .line 339
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
140: .line 342
goto 155
141: .line 343
StackMap locals:
StackMap stack:
iload 18 /* len */
sipush 262
if_icmple 148
142: .line 344
goto 147
143: .line 345
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
ldc 224
lload 16 /* distance */
bipush 8
lushr
ladd
l2i
i2b
bastore
144: .line 346
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
bipush -3
bastore
145: .line 347
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
146: .line 348
iinc 18 /* len */ -262
147: .line 344
StackMap locals:
StackMap stack:
iload 18 /* len */
sipush 262
if_icmpgt 143
148: .line 352
StackMap locals:
StackMap stack:
iload 18 /* len */
bipush 7
if_icmpge 152
149: .line 353
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 18 /* len */
iconst_5
ishl
i2l
lload 16 /* distance */
bipush 8
lushr
ladd
l2i
i2b
bastore
150: .line 354
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
151: .line 355
goto 155
152: .line 356
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
ldc 224
lload 16 /* distance */
bipush 8
lushr
ladd
l2i
i2b
bastore
153: .line 357
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
iload 18 /* len */
bipush 7
isub
i2b
bastore
154: .line 358
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
lload 16 /* distance */
ldc 255
land
l2i
i2b
bastore
155: .line 364
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
invokestatic io.netty.handler.codec.compression.FastLz.hashFunction:([BI)I
istore 13 /* hval */
start local 13 // int hval
156: .line 365
aload 11 /* htab */
iload 13 /* hval */
iload 7 /* ip */
iinc 7 /* ip */ 1
iastore
157: .line 368
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iadd
invokestatic io.netty.handler.codec.compression.FastLz.hashFunction:([BI)I
istore 13 /* hval */
158: .line 369
aload 11 /* htab */
iload 13 /* hval */
iload 7 /* ip */
iinc 7 /* ip */ 1
iastore
159: .line 372
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
bipush 31
bastore
end local 20 // boolean matchLabel
end local 19 // int anchor
end local 18 // int len
end local 16 // long distance
end local 15 // int ref
end local 13 // int hval
160: .line 149
StackMap locals: byte[] int int byte[] int int int int int int int int[] int top int
StackMap stack:
iload 7 /* ip */
iload 9 /* ipLimit */
if_icmplt 30
161: .line 391
iinc 8 /* ipBound */ 1
162: .line 392
goto 168
163: .line 393
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bastore
164: .line 394
iinc 14 /* copy */ 1
165: .line 395
iload 14 /* copy */
bipush 32
if_icmpne 168
166: .line 396
iconst_0
istore 14 /* copy */
167: .line 397
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iinc 10 /* op */ 1
iadd
bipush 31
bastore
168: .line 392
StackMap locals:
StackMap stack:
iload 7 /* ip */
iload 8 /* ipBound */
if_icmple 163
169: .line 402
iload 14 /* copy */
ifeq 172
170: .line 404
aload 3 /* output */
iload 4 /* outOffset */
iload 10 /* op */
iadd
iload 14 /* copy */
isub
iconst_1
isub
iload 14 /* copy */
iconst_1
isub
i2b
bastore
171: .line 405
goto 173
172: .line 406
StackMap locals:
StackMap stack:
iinc 10 /* op */ -1
173: .line 409
StackMap locals:
StackMap stack:
iload 6 /* level */
iconst_2
if_icmpne 175
174: .line 411
aload 3 /* output */
iload 4 /* outOffset */
dup2
baload
bipush 32
ior
i2b
bastore
175: .line 414
StackMap locals:
StackMap stack:
iload 10 /* op */
ireturn
end local 14 // int copy
end local 12 // int hslot
end local 11 // int[] htab
end local 10 // int op
end local 9 // int ipLimit
end local 8 // int ipBound
end local 7 // int ip
end local 6 // int level
end local 5 // int proposedLevel
end local 4 // int outOffset
end local 3 // byte[] output
end local 2 // int inLength
end local 1 // int inOffset
end local 0 // byte[] input
LocalVariableTable:
Start End Slot Name Signature
0 176 0 input [B
0 176 1 inOffset I
0 176 2 inLength I
0 176 3 output [B
0 176 4 outOffset I
0 176 5 proposedLevel I
4 5 6 level I
6 176 6 level I
7 176 7 ip I
8 176 8 ipBound I
9 176 9 ipLimit I
10 176 10 op I
11 176 11 htab [I
21 176 12 hslot I
44 73 13 hval I
156 160 13 hval I
26 176 14 copy I
31 160 15 ref I
32 160 16 distance J
33 160 18 len I
34 160 19 anchor I
35 160 20 matchLabel Z
77 82 21 x B
MethodParameters:
Name Flags
input final
inOffset final
inLength final
output final
outOffset final
proposedLevel final
static int decompress(byte[], int, int, byte[], int, int);
descriptor: ([BII[BII)I
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=19, args_size=6
start local 0 // byte[] input
start local 1 // int inOffset
start local 2 // int inLength
start local 3 // byte[] output
start local 4 // int outOffset
start local 5 // int outLength
0: .line 428
aload 0 /* input */
iload 1 /* inOffset */
baload
iconst_5
ishr
iconst_1
iadd
istore 6 /* level */
start local 6 // int level
1: .line 429
iload 6 /* level */
iconst_1
if_icmpeq 5
iload 6 /* level */
iconst_2
if_icmpeq 5
2: .line 430
new io.netty.handler.codec.compression.DecompressionException
dup
3: .line 431
ldc "invalid level: %d (expected: %d or %d)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 6 /* level */
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
4: .line 430
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
5: .line 436
StackMap locals: int
StackMap stack:
iconst_0
istore 7 /* ip */
start local 7 // int ip
6: .line 438
iconst_0
istore 8 /* op */
start local 8 // int op
7: .line 440
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bipush 31
iand
i2l
lstore 9 /* ctrl */
start local 9 // long ctrl
8: .line 442
iconst_1
istore 11 /* loop */
start local 11 // int loop
9: .line 445
StackMap locals: byte[] int int byte[] int int int int int long int
StackMap stack:
iload 8 /* op */
istore 12 /* ref */
start local 12 // int ref
10: .line 447
lload 9 /* ctrl */
iconst_5
lshr
lstore 13 /* len */
start local 13 // long len
11: .line 449
lload 9 /* ctrl */
ldc 31
land
bipush 8
lshl
lstore 15 /* ofs */
start local 15 // long ofs
12: .line 451
lload 9 /* ctrl */
ldc 32
lcmp
iflt 58
13: .line 452
lload 13 /* len */
lconst_1
lsub
lstore 13 /* len */
14: .line 454
iload 12 /* ref */
i2l
lload 15 /* ofs */
lsub
l2i
istore 12 /* ref */
15: .line 457
lload 13 /* len */
ldc 6
lcmp
ifne 22
16: .line 458
iload 6 /* level */
iconst_1
if_icmpne 19
17: .line 460
lload 13 /* len */
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
i2l
ladd
lstore 13 /* len */
18: .line 461
goto 22
19: .line 463
StackMap locals: int long long
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
istore 17 /* code */
start local 17 // int code
20: .line 464
lload 13 /* len */
iload 17 /* code */
i2l
ladd
lstore 13 /* len */
21: .line 465
iload 17 /* code */
sipush 255
if_icmpeq 19
end local 17 // int code
22: .line 468
StackMap locals:
StackMap stack:
iload 6 /* level */
iconst_1
if_icmpne 25
23: .line 470
iload 12 /* ref */
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
isub
istore 12 /* ref */
24: .line 471
goto 31
25: .line 472
StackMap locals:
StackMap stack:
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
istore 17 /* code */
start local 17 // int code
26: .line 473
iload 12 /* ref */
iload 17 /* code */
isub
istore 12 /* ref */
27: .line 478
iload 17 /* code */
sipush 255
if_icmpne 31
lload 15 /* ofs */
ldc 7936
lcmp
ifne 31
28: .line 479
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
bipush 8
ishl
i2l
lstore 15 /* ofs */
29: .line 480
lload 15 /* ofs */
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
i2l
ladd
lstore 15 /* ofs */
30: .line 482
iload 8 /* op */
i2l
lload 15 /* ofs */
lsub
ldc 8191
lsub
l2i
istore 12 /* ref */
end local 17 // int code
31: .line 487
StackMap locals:
StackMap stack:
iload 8 /* op */
i2l
lload 13 /* len */
ladd
ldc 3
ladd
iload 5 /* outLength */
i2l
lcmp
ifle 33
32: .line 488
iconst_0
ireturn
33: .line 494
StackMap locals:
StackMap stack:
iload 12 /* ref */
iconst_1
isub
ifge 35
34: .line 495
iconst_0
ireturn
35: .line 498
StackMap locals:
StackMap stack:
iload 7 /* ip */
iload 2 /* inLength */
if_icmpge 38
36: .line 499
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
i2l
lstore 9 /* ctrl */
37: .line 500
goto 39
38: .line 501
StackMap locals:
StackMap stack:
iconst_0
istore 11 /* loop */
39: .line 504
StackMap locals:
StackMap stack:
iload 12 /* ref */
iload 8 /* op */
if_icmpne 49
40: .line 507
aload 3 /* output */
iload 4 /* outOffset */
iload 12 /* ref */
iadd
iconst_1
isub
baload
istore 18 /* b */
start local 18 // byte b
41: .line 508
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
iload 18 /* b */
bastore
42: .line 509
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
iload 18 /* b */
bastore
43: .line 510
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
iload 18 /* b */
bastore
44: .line 511
goto 47
45: .line 512
StackMap locals: byte[] int int byte[] int int int int int long int int long long top int
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
iload 18 /* b */
bastore
46: .line 513
lload 13 /* len */
lconst_1
lsub
lstore 13 /* len */
47: .line 511
StackMap locals:
StackMap stack:
lload 13 /* len */
lconst_0
lcmp
ifne 45
end local 18 // byte b
48: .line 515
goto 73
49: .line 517
StackMap locals: byte[] int int byte[] int int int int int long int int long long
StackMap stack:
iinc 12 /* ref */ -1
50: .line 520
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
aload 3 /* output */
iload 4 /* outOffset */
iload 12 /* ref */
iinc 12 /* ref */ 1
iadd
baload
bastore
51: .line 521
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
aload 3 /* output */
iload 4 /* outOffset */
iload 12 /* ref */
iinc 12 /* ref */ 1
iadd
baload
bastore
52: .line 522
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
aload 3 /* output */
iload 4 /* outOffset */
iload 12 /* ref */
iinc 12 /* ref */ 1
iadd
baload
bastore
53: .line 524
goto 56
54: .line 525
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
aload 3 /* output */
iload 4 /* outOffset */
iload 12 /* ref */
iinc 12 /* ref */ 1
iadd
baload
bastore
55: .line 526
lload 13 /* len */
lconst_1
lsub
lstore 13 /* len */
56: .line 524
StackMap locals:
StackMap stack:
lload 13 /* len */
lconst_0
lcmp
ifne 54
57: .line 529
goto 73
58: .line 530
StackMap locals:
StackMap stack:
lload 9 /* ctrl */
lconst_1
ladd
lstore 9 /* ctrl */
59: .line 532
iload 8 /* op */
i2l
lload 9 /* ctrl */
ladd
iload 5 /* outLength */
i2l
lcmp
ifle 61
60: .line 533
iconst_0
ireturn
61: .line 535
StackMap locals:
StackMap stack:
iload 7 /* ip */
i2l
lload 9 /* ctrl */
ladd
iload 2 /* inLength */
i2l
lcmp
ifle 63
62: .line 536
iconst_0
ireturn
63: .line 540
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bastore
64: .line 542
lload 9 /* ctrl */
lconst_1
lsub
lstore 9 /* ctrl */
goto 67
65: .line 544
StackMap locals:
StackMap stack:
aload 3 /* output */
iload 4 /* outOffset */
iload 8 /* op */
iinc 8 /* op */ 1
iadd
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
bastore
66: .line 542
lload 9 /* ctrl */
lconst_1
lsub
lstore 9 /* ctrl */
StackMap locals:
StackMap stack:
67: lload 9 /* ctrl */
lconst_0
lcmp
ifne 65
68: .line 547
iload 7 /* ip */
iload 2 /* inLength */
if_icmpge 69
iconst_1
goto 70
StackMap locals:
StackMap stack:
69: iconst_0
StackMap locals:
StackMap stack: int
70: istore 11 /* loop */
71: .line 548
iload 11 /* loop */
ifeq 73
72: .line 550
aload 0 /* input */
iload 1 /* inOffset */
iload 7 /* ip */
iinc 7 /* ip */ 1
iadd
baload
sipush 255
iand
i2l
lstore 9 /* ctrl */
end local 15 // long ofs
end local 13 // long len
end local 12 // int ref
73: .line 555
StackMap locals:
StackMap stack:
iload 11 /* loop */
ifne 9
74: .line 558
iload 8 /* op */
ireturn
end local 11 // int loop
end local 9 // long ctrl
end local 8 // int op
end local 7 // int ip
end local 6 // int level
end local 5 // int outLength
end local 4 // int outOffset
end local 3 // byte[] output
end local 2 // int inLength
end local 1 // int inOffset
end local 0 // byte[] input
LocalVariableTable:
Start End Slot Name Signature
0 75 0 input [B
0 75 1 inOffset I
0 75 2 inLength I
0 75 3 output [B
0 75 4 outOffset I
0 75 5 outLength I
1 75 6 level I
6 75 7 ip I
7 75 8 op I
8 75 9 ctrl J
9 75 11 loop I
10 73 12 ref I
11 73 13 len J
12 73 15 ofs J
20 22 17 code I
26 31 17 code I
41 48 18 b B
MethodParameters:
Name Flags
input final
inOffset final
inLength final
output final
outOffset final
outLength final
private static int hashFunction(byte[], int);
descriptor: ([BI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 // byte[] p
start local 1 // int offset
0: .line 562
aload 0 /* p */
iload 1 /* offset */
invokestatic io.netty.handler.codec.compression.FastLz.readU16:([BI)I
istore 2 /* v */
start local 2 // int v
1: .line 563
iload 2 /* v */
aload 0 /* p */
iload 1 /* offset */
iconst_1
iadd
invokestatic io.netty.handler.codec.compression.FastLz.readU16:([BI)I
iload 2 /* v */
iconst_3
ishr
ixor
ixor
istore 2 /* v */
2: .line 564
iload 2 /* v */
sipush 8191
iand
istore 2 /* v */
3: .line 565
iload 2 /* v */
ireturn
end local 2 // int v
end local 1 // int offset
end local 0 // byte[] p
LocalVariableTable:
Start End Slot Name Signature
0 4 0 p [B
0 4 1 offset I
1 4 2 v I
MethodParameters:
Name Flags
p
offset
private static int readU16(byte[], int);
descriptor: ([BI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 // byte[] data
start local 1 // int offset
0: .line 569
iload 1 /* offset */
iconst_1
iadd
aload 0 /* data */
arraylength
if_icmplt 2
1: .line 570
aload 0 /* data */
iload 1 /* offset */
baload
sipush 255
iand
ireturn
2: .line 572
StackMap locals:
StackMap stack:
aload 0 /* data */
iload 1 /* offset */
iconst_1
iadd
baload
sipush 255
iand
bipush 8
ishl
aload 0 /* data */
iload 1 /* offset */
baload
sipush 255
iand
ior
ireturn
end local 1 // int offset
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 3 0 data [B
0 3 1 offset I
MethodParameters:
Name Flags
data
offset
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // io.netty.handler.codec.compression.FastLz this
0: .line 575
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.netty.handler.codec.compression.FastLz this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/compression/FastLz;
}
SourceFile: "FastLz.java"