public class org.apache.tomcat.util.buf.Utf8Decoder extends java.nio.charset.CharsetDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.buf.Utf8Decoder
super_class: java.nio.charset.CharsetDecoder
{
private static final int[] remainingBytes;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] remainingNumbers;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] lowerEncodingLimit;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 46
sipush 128
newarray 10
dup
iconst_0
1: .line 48
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
dup
iconst_3
iconst_m1
iastore
dup
iconst_4
iconst_m1
iastore
dup
iconst_5
iconst_m1
iastore
dup
bipush 6
iconst_m1
iastore
dup
bipush 7
iconst_m1
iastore
dup
bipush 8
iconst_m1
iastore
dup
bipush 9
iconst_m1
iastore
dup
bipush 10
iconst_m1
iastore
dup
bipush 11
iconst_m1
iastore
dup
bipush 12
iconst_m1
iastore
dup
bipush 13
iconst_m1
iastore
dup
bipush 14
iconst_m1
iastore
dup
bipush 15
iconst_m1
iastore
dup
bipush 16
2: .line 49
iconst_m1
iastore
dup
bipush 17
iconst_m1
iastore
dup
bipush 18
iconst_m1
iastore
dup
bipush 19
iconst_m1
iastore
dup
bipush 20
iconst_m1
iastore
dup
bipush 21
iconst_m1
iastore
dup
bipush 22
iconst_m1
iastore
dup
bipush 23
iconst_m1
iastore
dup
bipush 24
iconst_m1
iastore
dup
bipush 25
iconst_m1
iastore
dup
bipush 26
iconst_m1
iastore
dup
bipush 27
iconst_m1
iastore
dup
bipush 28
iconst_m1
iastore
dup
bipush 29
iconst_m1
iastore
dup
bipush 30
iconst_m1
iastore
dup
bipush 31
iconst_m1
iastore
dup
bipush 32
3: .line 50
iconst_m1
iastore
dup
bipush 33
iconst_m1
iastore
dup
bipush 34
iconst_m1
iastore
dup
bipush 35
iconst_m1
iastore
dup
bipush 36
iconst_m1
iastore
dup
bipush 37
iconst_m1
iastore
dup
bipush 38
iconst_m1
iastore
dup
bipush 39
iconst_m1
iastore
dup
bipush 40
iconst_m1
iastore
dup
bipush 41
iconst_m1
iastore
dup
bipush 42
iconst_m1
iastore
dup
bipush 43
iconst_m1
iastore
dup
bipush 44
iconst_m1
iastore
dup
bipush 45
iconst_m1
iastore
dup
bipush 46
iconst_m1
iastore
dup
bipush 47
iconst_m1
iastore
dup
bipush 48
4: .line 51
iconst_m1
iastore
dup
bipush 49
iconst_m1
iastore
dup
bipush 50
iconst_m1
iastore
dup
bipush 51
iconst_m1
iastore
dup
bipush 52
iconst_m1
iastore
dup
bipush 53
iconst_m1
iastore
dup
bipush 54
iconst_m1
iastore
dup
bipush 55
iconst_m1
iastore
dup
bipush 56
iconst_m1
iastore
dup
bipush 57
iconst_m1
iastore
dup
bipush 58
iconst_m1
iastore
dup
bipush 59
iconst_m1
iastore
dup
bipush 60
iconst_m1
iastore
dup
bipush 61
iconst_m1
iastore
dup
bipush 62
iconst_m1
iastore
dup
bipush 63
iconst_m1
iastore
dup
bipush 64
5: .line 53
iconst_m1
iastore
dup
bipush 65
iconst_m1
iastore
dup
bipush 66
iconst_1
iastore
dup
bipush 67
iconst_1
iastore
dup
bipush 68
iconst_1
iastore
dup
bipush 69
iconst_1
iastore
dup
bipush 70
iconst_1
iastore
dup
bipush 71
iconst_1
iastore
dup
bipush 72
iconst_1
iastore
dup
bipush 73
iconst_1
iastore
dup
bipush 74
iconst_1
iastore
dup
bipush 75
iconst_1
iastore
dup
bipush 76
iconst_1
iastore
dup
bipush 77
iconst_1
iastore
dup
bipush 78
iconst_1
iastore
dup
bipush 79
iconst_1
iastore
dup
bipush 80
6: .line 54
iconst_1
iastore
dup
bipush 81
iconst_1
iastore
dup
bipush 82
iconst_1
iastore
dup
bipush 83
iconst_1
iastore
dup
bipush 84
iconst_1
iastore
dup
bipush 85
iconst_1
iastore
dup
bipush 86
iconst_1
iastore
dup
bipush 87
iconst_1
iastore
dup
bipush 88
iconst_1
iastore
dup
bipush 89
iconst_1
iastore
dup
bipush 90
iconst_1
iastore
dup
bipush 91
iconst_1
iastore
dup
bipush 92
iconst_1
iastore
dup
bipush 93
iconst_1
iastore
dup
bipush 94
iconst_1
iastore
dup
bipush 95
iconst_1
iastore
dup
bipush 96
7: .line 56
iconst_2
iastore
dup
bipush 97
iconst_2
iastore
dup
bipush 98
iconst_2
iastore
dup
bipush 99
iconst_2
iastore
dup
bipush 100
iconst_2
iastore
dup
bipush 101
iconst_2
iastore
dup
bipush 102
iconst_2
iastore
dup
bipush 103
iconst_2
iastore
dup
bipush 104
iconst_2
iastore
dup
bipush 105
iconst_2
iastore
dup
bipush 106
iconst_2
iastore
dup
bipush 107
iconst_2
iastore
dup
bipush 108
iconst_2
iastore
dup
bipush 109
iconst_2
iastore
dup
bipush 110
iconst_2
iastore
dup
bipush 111
iconst_2
iastore
dup
bipush 112
8: .line 58
iconst_3
iastore
dup
bipush 113
iconst_3
iastore
dup
bipush 114
iconst_3
iastore
dup
bipush 115
iconst_3
iastore
dup
bipush 116
iconst_3
iastore
dup
bipush 117
iconst_m1
iastore
dup
bipush 118
iconst_m1
iastore
dup
bipush 119
iconst_m1
iastore
dup
bipush 120
9: .line 60
iconst_m1
iastore
dup
bipush 121
iconst_m1
iastore
dup
bipush 122
iconst_m1
iastore
dup
bipush 123
iconst_m1
iastore
dup
bipush 124
iconst_m1
iastore
dup
bipush 125
iconst_m1
iastore
dup
bipush 126
iconst_m1
iastore
dup
bipush 127
iconst_m1
iastore
10: .line 46
putstatic org.apache.tomcat.util.buf.Utf8Decoder.remainingBytes:[I
11: .line 61
iconst_4
newarray 10
dup
iconst_1
12: .line 62
sipush 4224
iastore
dup
iconst_2
13: .line 63
ldc 401536
iastore
dup
iconst_3
14: .line 64
ldc 29892736
iastore
15: .line 61
putstatic org.apache.tomcat.util.buf.Utf8Decoder.remainingNumbers:[I
16: .line 67
iconst_4
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
sipush 128
iastore
dup
iconst_2
sipush 2048
iastore
dup
iconst_3
ldc 65536
iastore
putstatic org.apache.tomcat.util.buf.Utf8Decoder.lowerEncodingLimit:[I
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
0: .line 71
aload 0 /* this */
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
fconst_1
fconst_1
invokespecial java.nio.charset.CharsetDecoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: .line 72
return
end local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/buf/Utf8Decoder;
protected java.nio.charset.CoderResult decodeLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
start local 1 // java.nio.ByteBuffer in
start local 2 // java.nio.CharBuffer out
0: .line 77
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
aload 2 /* out */
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
1: .line 78
aload 0 /* this */
aload 1 /* in */
aload 2 /* out */
invokevirtual org.apache.tomcat.util.buf.Utf8Decoder.decodeHasArray:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
areturn
2: .line 80
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* in */
aload 2 /* out */
invokevirtual org.apache.tomcat.util.buf.Utf8Decoder.decodeNotHasArray:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
areturn
end local 2 // java.nio.CharBuffer out
end local 1 // java.nio.ByteBuffer in
end local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/tomcat/util/buf/Utf8Decoder;
0 3 1 in Ljava/nio/ByteBuffer;
0 3 2 out Ljava/nio/CharBuffer;
MethodParameters:
Name Flags
in
out
private java.nio.charset.CoderResult decodeNotHasArray(java.nio.ByteBuffer, java.nio.CharBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=12, args_size=3
start local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
start local 1 // java.nio.ByteBuffer in
start local 2 // java.nio.CharBuffer out
0: .line 85
aload 2 /* out */
invokevirtual java.nio.CharBuffer.remaining:()I
istore 3 /* outRemaining */
start local 3 // int outRemaining
1: .line 86
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.position:()I
istore 4 /* pos */
start local 4 // int pos
2: .line 87
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5 /* limit */
start local 5 // int limit
3: .line 89
goto 56
4: .line 90
StackMap locals: int int int
StackMap stack:
iload 3 /* outRemaining */
ifne 8
5: .line 91
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
6: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
7: .line 91
aload 11
areturn
8: .line 93
StackMap locals:
StackMap stack:
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.get:()B
istore 6 /* jchar */
start local 6 // int jchar
9: .line 94
iload 6 /* jchar */
ifge 36
10: .line 95
iload 6 /* jchar */
bipush 127
iand
istore 6 /* jchar */
11: .line 96
getstatic org.apache.tomcat.util.buf.Utf8Decoder.remainingBytes:[I
iload 6 /* jchar */
iaload
istore 7 /* tail */
start local 7 // int tail
12: .line 97
iload 7 /* tail */
iconst_m1
if_icmpne 16
13: .line 98
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
14: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
15: .line 98
aload 11
areturn
16: .line 100
StackMap locals: int int
StackMap stack:
iload 5 /* limit */
iload 4 /* pos */
isub
iconst_1
iload 7 /* tail */
iadd
if_icmpge 20
17: .line 103
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
18: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
19: .line 103
aload 11
areturn
20: .line 106
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* i */
start local 9 // int i
21: goto 29
22: .line 107
StackMap locals: org.apache.tomcat.util.buf.Utf8Decoder java.nio.ByteBuffer java.nio.CharBuffer int int int int int top int
StackMap stack:
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 8 /* nextByte */
start local 8 // int nextByte
23: .line 108
iload 8 /* nextByte */
sipush 192
iand
sipush 128
if_icmpeq 27
24: .line 109
iconst_1
iload 9 /* i */
iadd
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
25: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
26: .line 109
aload 11
areturn
27: .line 111
StackMap locals: org.apache.tomcat.util.buf.Utf8Decoder java.nio.ByteBuffer java.nio.CharBuffer int int int int int int int
StackMap stack:
iload 6 /* jchar */
bipush 6
ishl
iload 8 /* nextByte */
iadd
istore 6 /* jchar */
28: .line 106
iinc 9 /* i */ 1
end local 8 // int nextByte
StackMap locals: org.apache.tomcat.util.buf.Utf8Decoder java.nio.ByteBuffer java.nio.CharBuffer int int int int int top int
StackMap stack:
29: iload 9 /* i */
iload 7 /* tail */
if_icmplt 22
end local 9 // int i
30: .line 113
iload 6 /* jchar */
getstatic org.apache.tomcat.util.buf.Utf8Decoder.remainingNumbers:[I
iload 7 /* tail */
iaload
isub
istore 6 /* jchar */
31: .line 114
iload 6 /* jchar */
getstatic org.apache.tomcat.util.buf.Utf8Decoder.lowerEncodingLimit:[I
iload 7 /* tail */
iaload
if_icmpge 35
32: .line 116
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
33: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
34: .line 116
aload 11
areturn
35: .line 118
StackMap locals: org.apache.tomcat.util.buf.Utf8Decoder java.nio.ByteBuffer java.nio.CharBuffer int int int int int
StackMap stack:
iload 4 /* pos */
iload 7 /* tail */
iadd
istore 4 /* pos */
end local 7 // int tail
36: .line 121
StackMap locals:
StackMap stack:
iload 6 /* jchar */
ldc 55296
if_icmplt 40
iload 6 /* jchar */
ldc 57343
if_icmpgt 40
37: .line 122
iconst_3
invokestatic java.nio.charset.CoderResult.unmappableForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
38: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
39: .line 122
aload 11
areturn
40: .line 125
StackMap locals:
StackMap stack:
iload 6 /* jchar */
ldc 1114111
if_icmple 44
41: .line 126
iconst_4
invokestatic java.nio.charset.CoderResult.unmappableForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
42: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
43: .line 126
aload 11
areturn
44: .line 128
StackMap locals:
StackMap stack:
iload 6 /* jchar */
ldc 65535
if_icmpgt 48
45: .line 129
aload 2 /* out */
iload 6 /* jchar */
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
46: .line 130
iinc 3 /* outRemaining */ -1
47: .line 131
goto 55
48: .line 132
StackMap locals:
StackMap stack:
iload 3 /* outRemaining */
iconst_2
if_icmpge 52
49: .line 133
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
50: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
51: .line 133
aload 11
areturn
52: .line 135
StackMap locals:
StackMap stack:
aload 2 /* out */
iload 6 /* jchar */
bipush 10
ishr
ldc 55232
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
53: .line 136
aload 2 /* out */
iload 6 /* jchar */
sipush 1023
iand
ldc 56320
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
54: .line 137
iinc 3 /* outRemaining */ -2
55: .line 139
StackMap locals:
StackMap stack:
iinc 4 /* pos */ 1
end local 6 // int jchar
56: .line 89
StackMap locals:
StackMap stack:
iload 4 /* pos */
iload 5 /* limit */
if_icmplt 4
57: .line 141
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
58: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
59: .line 141
aload 11
areturn
60: .line 142
StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
61: .line 143
aload 1 /* in */
iload 4 /* pos */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
62: .line 144
aload 10
athrow
end local 5 // int limit
end local 4 // int pos
end local 3 // int outRemaining
end local 2 // java.nio.CharBuffer out
end local 1 // java.nio.ByteBuffer in
end local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lorg/apache/tomcat/util/buf/Utf8Decoder;
0 63 1 in Ljava/nio/ByteBuffer;
0 63 2 out Ljava/nio/CharBuffer;
1 63 3 outRemaining I
2 63 4 pos I
3 63 5 limit I
9 56 6 jchar I
12 36 7 tail I
23 29 8 nextByte I
21 30 9 i I
Exception table:
from to target type
3 6 60 any
8 14 60 any
16 18 60 any
20 25 60 any
27 33 60 any
35 38 60 any
40 42 60 any
44 50 60 any
52 58 60 any
MethodParameters:
Name Flags
in
out
private java.nio.charset.CoderResult decodeHasArray(java.nio.ByteBuffer, java.nio.CharBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=16, args_size=3
start local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
start local 1 // java.nio.ByteBuffer in
start local 2 // java.nio.CharBuffer out
0: .line 149
aload 2 /* out */
invokevirtual java.nio.CharBuffer.remaining:()I
istore 3 /* outRemaining */
start local 3 // int outRemaining
1: .line 150
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.position:()I
istore 4 /* pos */
start local 4 // int pos
2: .line 151
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5 /* limit */
start local 5 // int limit
3: .line 152
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.array:()[B
astore 6 /* bArr */
start local 6 // byte[] bArr
4: .line 153
aload 2 /* out */
invokevirtual java.nio.CharBuffer.array:()[C
astore 7 /* cArr */
start local 7 // char[] cArr
5: .line 154
iload 5 /* limit */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iadd
istore 8 /* inIndexLimit */
start local 8 // int inIndexLimit
6: .line 155
iload 4 /* pos */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iadd
istore 9 /* inIndex */
start local 9 // int inIndex
7: .line 156
aload 2 /* out */
invokevirtual java.nio.CharBuffer.position:()I
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
iadd
istore 10 /* outIndex */
start local 10 // int outIndex
8: .line 159
goto 103
9: .line 160
StackMap locals: org.apache.tomcat.util.buf.Utf8Decoder java.nio.ByteBuffer java.nio.CharBuffer int int int byte[] char[] int int int
StackMap stack:
aload 6 /* bArr */
iload 9 /* inIndex */
baload
istore 11 /* jchar */
start local 11 // int jchar
10: .line 161
iload 11 /* jchar */
ifge 86
11: .line 162
iload 11 /* jchar */
bipush 127
iand
istore 11 /* jchar */
12: .line 164
getstatic org.apache.tomcat.util.buf.Utf8Decoder.remainingBytes:[I
iload 11 /* jchar */
iaload
istore 12 /* tail */
start local 12 // int tail
13: .line 165
iload 12 /* tail */
iconst_m1
if_icmpne 17
14: .line 166
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
15: .line 167
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
16: .line 168
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
17: .line 173
StackMap locals: int int
StackMap stack:
iload 8 /* inIndexLimit */
iload 9 /* inIndex */
isub
iconst_1
isub
istore 13 /* tailAvailable */
start local 13 // int tailAvailable
18: .line 174
iload 13 /* tailAvailable */
ifle 58
19: .line 176
iload 11 /* jchar */
bipush 65
if_icmple 24
iload 11 /* jchar */
bipush 96
if_icmpge 24
20: .line 177
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 192
iand
sipush 128
if_icmpeq 24
21: .line 178
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
22: .line 179
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
23: .line 180
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
24: .line 183
StackMap locals: int
StackMap stack:
iload 11 /* jchar */
bipush 96
if_icmpne 28
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 224
iand
sipush 160
if_icmpeq 28
25: .line 184
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
26: .line 185
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
27: .line 186
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
28: .line 189
StackMap locals:
StackMap stack:
iload 11 /* jchar */
bipush 96
if_icmple 33
iload 11 /* jchar */
bipush 109
if_icmpge 33
29: .line 190
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 192
iand
sipush 128
if_icmpeq 33
30: .line 191
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
31: .line 192
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
32: .line 193
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
33: .line 196
StackMap locals:
StackMap stack:
iload 11 /* jchar */
bipush 109
if_icmpne 37
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 224
iand
sipush 128
if_icmpeq 37
34: .line 197
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
35: .line 198
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
36: .line 199
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
37: .line 202
StackMap locals:
StackMap stack:
iload 11 /* jchar */
bipush 109
if_icmple 42
iload 11 /* jchar */
bipush 112
if_icmpge 42
38: .line 203
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 192
iand
sipush 128
if_icmpeq 42
39: .line 204
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
40: .line 205
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
41: .line 206
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
42: .line 209
StackMap locals:
StackMap stack:
iload 11 /* jchar */
bipush 112
if_icmpne 48
43: .line 210
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 255
iand
sipush 144
if_icmplt 45
44: .line 211
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 255
iand
sipush 191
if_icmple 48
45: .line 212
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
46: .line 213
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
47: .line 214
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
48: .line 217
StackMap locals:
StackMap stack:
iload 11 /* jchar */
bipush 112
if_icmple 53
iload 11 /* jchar */
bipush 116
if_icmpge 53
49: .line 218
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 192
iand
sipush 128
if_icmpeq 53
50: .line 219
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
51: .line 220
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
52: .line 221
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
53: .line 224
StackMap locals:
StackMap stack:
iload 11 /* jchar */
bipush 116
if_icmpne 58
54: .line 225
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_1
iadd
baload
sipush 240
iand
sipush 128
if_icmpeq 58
55: .line 226
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
56: .line 227
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
57: .line 228
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
58: .line 232
StackMap locals:
StackMap stack:
iload 13 /* tailAvailable */
iconst_1
if_icmple 63
iload 12 /* tail */
iconst_1
if_icmple 63
59: .line 233
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_2
iadd
baload
sipush 192
iand
sipush 128
if_icmpeq 63
60: .line 234
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
61: .line 235
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
62: .line 236
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
63: .line 240
StackMap locals:
StackMap stack:
iload 13 /* tailAvailable */
iconst_2
if_icmple 68
iload 12 /* tail */
iconst_2
if_icmple 68
64: .line 241
aload 6 /* bArr */
iload 9 /* inIndex */
iconst_3
iadd
baload
sipush 192
iand
sipush 128
if_icmpeq 68
65: .line 242
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
66: .line 243
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
67: .line 244
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
68: .line 247
StackMap locals:
StackMap stack:
iload 13 /* tailAvailable */
iload 12 /* tail */
if_icmpge 70
69: .line 248
goto 104
70: .line 250
StackMap locals:
StackMap stack:
iconst_0
istore 14 /* i */
start local 14 // int i
71: goto 79
72: .line 251
StackMap locals: int
StackMap stack:
aload 6 /* bArr */
iload 9 /* inIndex */
iload 14 /* i */
iadd
iconst_1
iadd
baload
sipush 255
iand
istore 15 /* nextByte */
start local 15 // int nextByte
73: .line 252
iload 15 /* nextByte */
sipush 192
iand
sipush 128
if_icmpeq 77
74: .line 253
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
75: .line 254
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
76: .line 255
iconst_1
iload 14 /* i */
iadd
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
77: .line 257
StackMap locals: int
StackMap stack:
iload 11 /* jchar */
bipush 6
ishl
iload 15 /* nextByte */
iadd
istore 11 /* jchar */
end local 15 // int nextByte
78: .line 250
iinc 14 /* i */ 1
StackMap locals:
StackMap stack:
79: iload 14 /* i */
iload 12 /* tail */
if_icmplt 72
end local 14 // int i
80: .line 259
iload 11 /* jchar */
getstatic org.apache.tomcat.util.buf.Utf8Decoder.remainingNumbers:[I
iload 12 /* tail */
iaload
isub
istore 11 /* jchar */
81: .line 260
iload 11 /* jchar */
getstatic org.apache.tomcat.util.buf.Utf8Decoder.lowerEncodingLimit:[I
iload 12 /* tail */
iaload
if_icmpge 85
82: .line 262
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
83: .line 263
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
84: .line 264
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
areturn
85: .line 266
StackMap locals:
StackMap stack:
iload 9 /* inIndex */
iload 12 /* tail */
iadd
istore 9 /* inIndex */
end local 13 // int tailAvailable
end local 12 // int tail
86: .line 269
StackMap locals:
StackMap stack:
iload 11 /* jchar */
ldc 55296
if_icmplt 88
iload 11 /* jchar */
ldc 57343
if_icmpgt 88
87: .line 270
iconst_3
invokestatic java.nio.charset.CoderResult.unmappableForLength:(I)Ljava/nio/charset/CoderResult;
areturn
88: .line 273
StackMap locals:
StackMap stack:
iload 11 /* jchar */
ldc 1114111
if_icmple 90
89: .line 274
iconst_4
invokestatic java.nio.charset.CoderResult.unmappableForLength:(I)Ljava/nio/charset/CoderResult;
areturn
90: .line 276
StackMap locals:
StackMap stack:
iload 11 /* jchar */
ldc 65535
if_icmpgt 94
91: .line 277
aload 7 /* cArr */
iload 10 /* outIndex */
iinc 10 /* outIndex */ 1
iload 11 /* jchar */
i2c
castore
92: .line 278
iinc 3 /* outRemaining */ -1
93: .line 279
goto 102
94: .line 280
StackMap locals:
StackMap stack:
iload 3 /* outRemaining */
iconst_2
if_icmpge 99
95: .line 283
iinc 9 /* inIndex */ -3
96: .line 284
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
97: .line 285
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
98: .line 286
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
areturn
99: .line 288
StackMap locals:
StackMap stack:
aload 7 /* cArr */
iload 10 /* outIndex */
iinc 10 /* outIndex */ 1
iload 11 /* jchar */
bipush 10
ishr
ldc 55232
iadd
i2c
castore
100: .line 289
aload 7 /* cArr */
iload 10 /* outIndex */
iinc 10 /* outIndex */ 1
iload 11 /* jchar */
sipush 1023
iand
ldc 56320
iadd
i2c
castore
101: .line 290
iinc 3 /* outRemaining */ -2
end local 11 // int jchar
102: .line 159
StackMap locals:
StackMap stack:
iinc 9 /* inIndex */ 1
StackMap locals:
StackMap stack:
103: iload 9 /* inIndex */
iload 8 /* inIndexLimit */
if_icmpge 104
iload 3 /* outRemaining */
ifgt 9
104: .line 293
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 9 /* inIndex */
aload 1 /* in */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
105: .line 294
aload 2 /* out */
iload 10 /* outIndex */
aload 2 /* out */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
106: .line 295
iload 3 /* outRemaining */
ifne 108
iload 9 /* inIndex */
iload 8 /* inIndexLimit */
if_icmpge 108
107: .line 296
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
goto 109
108: .line 297
StackMap locals:
StackMap stack:
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
109: .line 295
StackMap locals:
StackMap stack: java.nio.charset.CoderResult
areturn
end local 10 // int outIndex
end local 9 // int inIndex
end local 8 // int inIndexLimit
end local 7 // char[] cArr
end local 6 // byte[] bArr
end local 5 // int limit
end local 4 // int pos
end local 3 // int outRemaining
end local 2 // java.nio.CharBuffer out
end local 1 // java.nio.ByteBuffer in
end local 0 // org.apache.tomcat.util.buf.Utf8Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 110 0 this Lorg/apache/tomcat/util/buf/Utf8Decoder;
0 110 1 in Ljava/nio/ByteBuffer;
0 110 2 out Ljava/nio/CharBuffer;
1 110 3 outRemaining I
2 110 4 pos I
3 110 5 limit I
4 110 6 bArr [B
5 110 7 cArr [C
6 110 8 inIndexLimit I
7 110 9 inIndex I
8 110 10 outIndex I
10 102 11 jchar I
13 86 12 tail I
18 86 13 tailAvailable I
71 80 14 i I
73 78 15 nextByte I
MethodParameters:
Name Flags
in
out
}
SourceFile: "Utf8Decoder.java"