final class io.netty.handler.codec.http.websocketx.Utf8Validator implements io.netty.util.ByteProcessor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.http.websocketx.Utf8Validator
super_class: java.lang.Object
{
private static final int UTF8_ACCEPT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int UTF8_REJECT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final byte[] TYPES;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] STATES;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int codep;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean checking;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 49
sipush 256
newarray 8
dup
sipush 128
1: .line 53
iconst_1
bastore
dup
sipush 129
iconst_1
bastore
dup
sipush 130
iconst_1
bastore
dup
sipush 131
iconst_1
bastore
dup
sipush 132
iconst_1
bastore
dup
sipush 133
iconst_1
bastore
dup
sipush 134
iconst_1
bastore
dup
sipush 135
2: .line 54
iconst_1
bastore
dup
sipush 136
iconst_1
bastore
dup
sipush 137
iconst_1
bastore
dup
sipush 138
iconst_1
bastore
dup
sipush 139
iconst_1
bastore
dup
sipush 140
iconst_1
bastore
dup
sipush 141
iconst_1
bastore
dup
sipush 142
iconst_1
bastore
dup
sipush 143
iconst_1
bastore
dup
sipush 144
bipush 9
bastore
dup
sipush 145
bipush 9
bastore
dup
sipush 146
bipush 9
bastore
dup
sipush 147
bipush 9
bastore
dup
sipush 148
bipush 9
bastore
dup
sipush 149
bipush 9
bastore
dup
sipush 150
bipush 9
bastore
dup
sipush 151
bipush 9
bastore
dup
sipush 152
bipush 9
bastore
dup
sipush 153
bipush 9
bastore
dup
sipush 154
bipush 9
bastore
dup
sipush 155
bipush 9
bastore
dup
sipush 156
bipush 9
bastore
dup
sipush 157
bipush 9
bastore
dup
sipush 158
bipush 9
bastore
dup
sipush 159
bipush 9
bastore
dup
sipush 160
bipush 7
bastore
dup
sipush 161
bipush 7
bastore
dup
sipush 162
bipush 7
bastore
dup
sipush 163
bipush 7
bastore
dup
sipush 164
3: .line 55
bipush 7
bastore
dup
sipush 165
bipush 7
bastore
dup
sipush 166
bipush 7
bastore
dup
sipush 167
bipush 7
bastore
dup
sipush 168
bipush 7
bastore
dup
sipush 169
bipush 7
bastore
dup
sipush 170
bipush 7
bastore
dup
sipush 171
bipush 7
bastore
dup
sipush 172
bipush 7
bastore
dup
sipush 173
bipush 7
bastore
dup
sipush 174
bipush 7
bastore
dup
sipush 175
bipush 7
bastore
dup
sipush 176
bipush 7
bastore
dup
sipush 177
bipush 7
bastore
dup
sipush 178
bipush 7
bastore
dup
sipush 179
bipush 7
bastore
dup
sipush 180
bipush 7
bastore
dup
sipush 181
bipush 7
bastore
dup
sipush 182
bipush 7
bastore
dup
sipush 183
bipush 7
bastore
dup
sipush 184
bipush 7
bastore
dup
sipush 185
bipush 7
bastore
dup
sipush 186
bipush 7
bastore
dup
sipush 187
bipush 7
bastore
dup
sipush 188
bipush 7
bastore
dup
sipush 189
bipush 7
bastore
dup
sipush 190
bipush 7
bastore
dup
sipush 191
bipush 7
bastore
dup
sipush 192
bipush 8
bastore
dup
sipush 193
4: .line 56
bipush 8
bastore
dup
sipush 194
iconst_2
bastore
dup
sipush 195
iconst_2
bastore
dup
sipush 196
iconst_2
bastore
dup
sipush 197
iconst_2
bastore
dup
sipush 198
iconst_2
bastore
dup
sipush 199
iconst_2
bastore
dup
sipush 200
iconst_2
bastore
dup
sipush 201
iconst_2
bastore
dup
sipush 202
iconst_2
bastore
dup
sipush 203
iconst_2
bastore
dup
sipush 204
iconst_2
bastore
dup
sipush 205
iconst_2
bastore
dup
sipush 206
iconst_2
bastore
dup
sipush 207
iconst_2
bastore
dup
sipush 208
iconst_2
bastore
dup
sipush 209
iconst_2
bastore
dup
sipush 210
iconst_2
bastore
dup
sipush 211
iconst_2
bastore
dup
sipush 212
iconst_2
bastore
dup
sipush 213
iconst_2
bastore
dup
sipush 214
iconst_2
bastore
dup
sipush 215
iconst_2
bastore
dup
sipush 216
iconst_2
bastore
dup
sipush 217
iconst_2
bastore
dup
sipush 218
iconst_2
bastore
dup
sipush 219
iconst_2
bastore
dup
sipush 220
iconst_2
bastore
dup
sipush 221
iconst_2
bastore
dup
sipush 222
5: .line 57
iconst_2
bastore
dup
sipush 223
iconst_2
bastore
dup
sipush 224
bipush 10
bastore
dup
sipush 225
iconst_3
bastore
dup
sipush 226
iconst_3
bastore
dup
sipush 227
iconst_3
bastore
dup
sipush 228
iconst_3
bastore
dup
sipush 229
iconst_3
bastore
dup
sipush 230
iconst_3
bastore
dup
sipush 231
iconst_3
bastore
dup
sipush 232
iconst_3
bastore
dup
sipush 233
iconst_3
bastore
dup
sipush 234
iconst_3
bastore
dup
sipush 235
iconst_3
bastore
dup
sipush 236
iconst_3
bastore
dup
sipush 237
iconst_4
bastore
dup
sipush 238
iconst_3
bastore
dup
sipush 239
iconst_3
bastore
dup
sipush 240
bipush 11
bastore
dup
sipush 241
bipush 6
bastore
dup
sipush 242
bipush 6
bastore
dup
sipush 243
bipush 6
bastore
dup
sipush 244
iconst_5
bastore
dup
sipush 245
bipush 8
bastore
dup
sipush 246
bipush 8
bastore
dup
sipush 247
bipush 8
bastore
dup
sipush 248
bipush 8
bastore
dup
sipush 249
bipush 8
bastore
dup
sipush 250
6: .line 58
bipush 8
bastore
dup
sipush 251
bipush 8
bastore
dup
sipush 252
bipush 8
bastore
dup
sipush 253
bipush 8
bastore
dup
sipush 254
bipush 8
bastore
dup
sipush 255
bipush 8
bastore
7: .line 49
putstatic io.netty.handler.codec.http.websocketx.Utf8Validator.TYPES:[B
8: .line 60
bipush 108
newarray 8
dup
iconst_1
bipush 12
bastore
dup
iconst_2
bipush 24
bastore
dup
iconst_3
bipush 36
bastore
dup
iconst_4
bipush 60
bastore
dup
iconst_5
bipush 96
bastore
dup
bipush 6
bipush 84
bastore
dup
bipush 7
bipush 12
bastore
dup
bipush 8
bipush 12
bastore
dup
bipush 9
bipush 12
bastore
dup
bipush 10
bipush 48
bastore
dup
bipush 11
bipush 72
bastore
dup
bipush 12
bipush 12
bastore
dup
bipush 13
bipush 12
bastore
dup
bipush 14
9: .line 61
bipush 12
bastore
dup
bipush 15
bipush 12
bastore
dup
bipush 16
bipush 12
bastore
dup
bipush 17
bipush 12
bastore
dup
bipush 18
bipush 12
bastore
dup
bipush 19
bipush 12
bastore
dup
bipush 20
bipush 12
bastore
dup
bipush 21
bipush 12
bastore
dup
bipush 22
bipush 12
bastore
dup
bipush 23
bipush 12
bastore
dup
bipush 24
bipush 12
bastore
dup
bipush 26
bipush 12
bastore
dup
bipush 27
bipush 12
bastore
dup
bipush 28
bipush 12
bastore
dup
bipush 29
bipush 12
bastore
dup
bipush 30
bipush 12
bastore
dup
bipush 32
bipush 12
bastore
dup
bipush 34
bipush 12
bastore
dup
bipush 35
bipush 12
bastore
dup
bipush 36
10: .line 62
bipush 12
bastore
dup
bipush 37
bipush 24
bastore
dup
bipush 38
bipush 12
bastore
dup
bipush 39
bipush 12
bastore
dup
bipush 40
bipush 12
bastore
dup
bipush 41
bipush 12
bastore
dup
bipush 42
bipush 12
bastore
dup
bipush 43
bipush 24
bastore
dup
bipush 44
bipush 12
bastore
dup
bipush 45
bipush 24
bastore
dup
bipush 46
bipush 12
bastore
dup
bipush 47
bipush 12
bastore
dup
bipush 48
bipush 12
bastore
dup
bipush 49
bipush 12
bastore
dup
bipush 50
bipush 12
bastore
dup
bipush 51
bipush 12
bastore
dup
bipush 52
bipush 12
bastore
dup
bipush 53
bipush 12
bastore
dup
bipush 54
bipush 12
bastore
dup
bipush 55
bipush 24
bastore
dup
bipush 56
bipush 12
bastore
dup
bipush 57
bipush 12
bastore
dup
bipush 58
11: .line 63
bipush 12
bastore
dup
bipush 59
bipush 12
bastore
dup
bipush 60
bipush 12
bastore
dup
bipush 61
bipush 24
bastore
dup
bipush 62
bipush 12
bastore
dup
bipush 63
bipush 12
bastore
dup
bipush 64
bipush 12
bastore
dup
bipush 65
bipush 12
bastore
dup
bipush 66
bipush 12
bastore
dup
bipush 67
bipush 12
bastore
dup
bipush 68
bipush 12
bastore
dup
bipush 69
bipush 24
bastore
dup
bipush 70
bipush 12
bastore
dup
bipush 71
bipush 12
bastore
dup
bipush 72
bipush 12
bastore
dup
bipush 73
bipush 12
bastore
dup
bipush 74
bipush 12
bastore
dup
bipush 75
bipush 12
bastore
dup
bipush 76
bipush 12
bastore
dup
bipush 77
bipush 12
bastore
dup
bipush 78
bipush 12
bastore
dup
bipush 79
bipush 36
bastore
dup
bipush 80
12: .line 64
bipush 12
bastore
dup
bipush 81
bipush 36
bastore
dup
bipush 82
bipush 12
bastore
dup
bipush 83
bipush 12
bastore
dup
bipush 84
bipush 12
bastore
dup
bipush 85
bipush 36
bastore
dup
bipush 86
bipush 12
bastore
dup
bipush 87
bipush 12
bastore
dup
bipush 88
bipush 12
bastore
dup
bipush 89
bipush 12
bastore
dup
bipush 90
bipush 12
bastore
dup
bipush 91
bipush 36
bastore
dup
bipush 92
bipush 12
bastore
dup
bipush 93
bipush 36
bastore
dup
bipush 94
bipush 12
bastore
dup
bipush 95
bipush 12
bastore
dup
bipush 96
bipush 12
bastore
dup
bipush 97
bipush 36
bastore
dup
bipush 98
bipush 12
bastore
dup
bipush 99
bipush 12
bastore
dup
bipush 100
bipush 12
bastore
dup
bipush 101
bipush 12
bastore
dup
bipush 102
13: .line 65
bipush 12
bastore
dup
bipush 103
bipush 12
bastore
dup
bipush 104
bipush 12
bastore
dup
bipush 105
bipush 12
bastore
dup
bipush 106
bipush 12
bastore
dup
bipush 107
bipush 12
bastore
14: .line 60
putstatic io.netty.handler.codec.http.websocketx.Utf8Validator.STATES:[B
15: .line 65
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
0: .line 45
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 68
aload 0 /* this */
iconst_0
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
2: .line 45
return
end local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http/websocketx/Utf8Validator;
public void check(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
start local 1 // io.netty.buffer.ByteBuf buffer
0: .line 73
aload 0 /* this */
iconst_1
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.checking:Z
1: .line 74
aload 1 /* buffer */
aload 0 /* this */
invokevirtual io.netty.buffer.ByteBuf.forEachByte:(Lio/netty/util/ByteProcessor;)I
pop
2: .line 75
return
end local 1 // io.netty.buffer.ByteBuf buffer
end local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http/websocketx/Utf8Validator;
0 3 1 buffer Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
buffer
public void finish();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
0: .line 78
aload 0 /* this */
iconst_0
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.checking:Z
1: .line 79
aload 0 /* this */
iconst_0
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.codep:I
2: .line 80
aload 0 /* this */
getfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
ifeq 5
3: .line 81
aload 0 /* this */
iconst_0
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
4: .line 82
new io.netty.handler.codec.CorruptedFrameException
dup
ldc "bytes are not UTF-8"
invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
5: .line 84
StackMap locals:
StackMap stack:
return
end local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/http/websocketx/Utf8Validator;
public boolean process(byte);
descriptor: (B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
start local 1 // byte b
0: .line 88
getstatic io.netty.handler.codec.http.websocketx.Utf8Validator.TYPES:[B
iload 1 /* b */
sipush 255
iand
baload
istore 2 /* type */
start local 2 // byte type
1: .line 90
aload 0 /* this */
aload 0 /* this */
getfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
ifeq 2
iload 1 /* b */
bipush 63
iand
aload 0 /* this */
getfield io.netty.handler.codec.http.websocketx.Utf8Validator.codep:I
bipush 6
ishl
ior
goto 3
StackMap locals: io.netty.handler.codec.http.websocketx.Utf8Validator int int
StackMap stack: io.netty.handler.codec.http.websocketx.Utf8Validator
2: sipush 255
iload 2 /* type */
ishr
iload 1 /* b */
iand
StackMap locals: io.netty.handler.codec.http.websocketx.Utf8Validator int int
StackMap stack: io.netty.handler.codec.http.websocketx.Utf8Validator int
3: putfield io.netty.handler.codec.http.websocketx.Utf8Validator.codep:I
4: .line 92
aload 0 /* this */
getstatic io.netty.handler.codec.http.websocketx.Utf8Validator.STATES:[B
aload 0 /* this */
getfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
iload 2 /* type */
iadd
baload
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
5: .line 94
aload 0 /* this */
getfield io.netty.handler.codec.http.websocketx.Utf8Validator.state:I
bipush 12
if_icmpne 8
6: .line 95
aload 0 /* this */
iconst_0
putfield io.netty.handler.codec.http.websocketx.Utf8Validator.checking:Z
7: .line 96
new io.netty.handler.codec.CorruptedFrameException
dup
ldc "bytes are not UTF-8"
invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
8: .line 98
StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 // byte type
end local 1 // byte b
end local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/handler/codec/http/websocketx/Utf8Validator;
0 9 1 b B
1 9 2 type B
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
b
public boolean isChecking();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
0: .line 102
aload 0 /* this */
getfield io.netty.handler.codec.http.websocketx.Utf8Validator.checking:Z
ireturn
end local 0 // io.netty.handler.codec.http.websocketx.Utf8Validator this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http/websocketx/Utf8Validator;
}
SourceFile: "Utf8Validator.java"