class sun.nio.cs.GB18030$Decoder extends java.nio.charset.CharsetDecoder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.cs.GB18030$Decoder
super_class: java.nio.charset.CharsetDecoder
{
private static final char REPLACE_CHAR;
descriptor: C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65533
private int currentState;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 12292
ldc Lsun/nio/cs/GB18030;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.nio.cs.GB18030$Decoder.$assertionsDisabled:Z
3: .line 12294
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.nio.charset.Charset);
descriptor: (Ljava/nio/charset/Charset;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 // sun.nio.cs.GB18030$Decoder this
start local 1 // java.nio.charset.Charset cs
0: .line 12298
aload 0 /* this */
aload 1 /* cs */
fconst_1
fconst_2
invokespecial java.nio.charset.CharsetDecoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: .line 12295
aload 0 /* this */
iconst_2
putfield sun.nio.cs.GB18030$Decoder.currentState:I
2: .line 12299
return
end local 1 // java.nio.charset.Charset cs
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/GB18030$Decoder;
0 3 1 cs Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
cs
private char getChar(int);
descriptor: (I)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 // sun.nio.cs.GB18030$Decoder this
start local 1 // int offset
0: .line 12302
iload 1 /* offset */
bipush 8
ishr
sipush 255
iand
istore 2 /* byte1 */
start local 2 // int byte1
1: .line 12303
iload 1 /* offset */
sipush 255
iand
istore 3 /* byte2 */
start local 3 // int byte2
2: .line 12304
iconst_0
istore 4 /* start */
start local 4 // int start
3: sipush 255
istore 5 /* end */
start local 5 // int end
4: .line 12306
iload 2 /* byte1 */
iflt 6
iload 2 /* byte1 */
getstatic sun.nio.cs.GB18030.decoderIndex1:[S
arraylength
if_icmpgt 6
5: .line 12307
iload 3 /* byte2 */
iload 4 /* start */
if_icmplt 6
iload 3 /* byte2 */
iload 5 /* end */
if_icmple 7
6: .line 12308
StackMap locals: sun.nio.cs.GB18030$Decoder int int int int int
StackMap stack:
ldc 65533
ireturn
7: .line 12311
StackMap locals:
StackMap stack:
getstatic sun.nio.cs.GB18030.decoderIndex1:[S
iload 2 /* byte1 */
saload
bipush 15
iand
iload 5 /* end */
iload 4 /* start */
isub
iconst_1
iadd
imul
iload 3 /* byte2 */
iload 4 /* start */
isub
iadd
istore 6 /* n */
start local 6 // int n
8: .line 12312
getstatic sun.nio.cs.GB18030.decoderIndex2:[Ljava/lang/String;
getstatic sun.nio.cs.GB18030.decoderIndex1:[S
iload 2 /* byte1 */
saload
iconst_4
ishr
aaload
iload 6 /* n */
invokevirtual java.lang.String.charAt:(I)C
ireturn
end local 6 // int n
end local 5 // int end
end local 4 // int start
end local 3 // int byte2
end local 2 // int byte1
end local 1 // int offset
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/cs/GB18030$Decoder;
0 9 1 offset I
1 9 2 byte1 I
2 9 3 byte2 I
3 9 4 start I
4 9 5 end I
8 9 6 n I
MethodParameters:
Name Flags
offset
protected char decodeDouble(int, int);
descriptor: (II)C
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=3
start local 0 // sun.nio.cs.GB18030$Decoder this
start local 1 // int byte1
start local 2 // int byte2
0: .line 12316
bipush 64
istore 3 /* start */
start local 3 // int start
1: sipush 254
istore 4 /* end */
start local 4 // int end
2: .line 12317
iload 1 /* byte1 */
iflt 4
iload 1 /* byte1 */
getstatic sun.nio.cs.GB18030.index1:[S
arraylength
if_icmpgt 4
3: .line 12318
iload 2 /* byte2 */
iload 3 /* start */
if_icmplt 4
iload 2 /* byte2 */
iload 4 /* end */
if_icmple 5
4: .line 12319
StackMap locals: int int
StackMap stack:
ldc 65533
ireturn
5: .line 12321
StackMap locals:
StackMap stack:
getstatic sun.nio.cs.GB18030.index1:[S
iload 1 /* byte1 */
saload
bipush 15
iand
iload 4 /* end */
iload 3 /* start */
isub
iconst_1
iadd
imul
iload 2 /* byte2 */
iload 3 /* start */
isub
iadd
istore 5 /* n */
start local 5 // int n
6: .line 12322
getstatic sun.nio.cs.GB18030.index2:[Ljava/lang/String;
getstatic sun.nio.cs.GB18030.index1:[S
iload 1 /* byte1 */
saload
iconst_4
ishr
aaload
iload 5 /* n */
invokevirtual java.lang.String.charAt:(I)C
ireturn
end local 5 // int n
end local 4 // int end
end local 3 // int start
end local 2 // int byte2
end local 1 // int byte1
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/cs/GB18030$Decoder;
0 7 1 byte1 I
0 7 2 byte2 I
1 7 3 start I
2 7 4 end I
6 7 5 n I
MethodParameters:
Name Flags
byte1
byte2
protected void implReset();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.nio.cs.GB18030$Decoder this
0: .line 12326
aload 0 /* this */
iconst_2
putfield sun.nio.cs.GB18030$Decoder.currentState:I
1: .line 12327
return
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/cs/GB18030$Decoder;
private java.nio.charset.CoderResult decodeArrayLoop(java.nio.ByteBuffer, java.nio.CharBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=17, args_size=3
start local 0 // sun.nio.cs.GB18030$Decoder this
start local 1 // java.nio.ByteBuffer src
start local 2 // java.nio.CharBuffer dst
0: .line 12332
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.array:()[B
astore 3 /* sa */
start local 3 // byte[] sa
1: .line 12333
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.position:()I
iadd
istore 4 /* sp */
start local 4 // int sp
2: .line 12334
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.limit:()I
iadd
istore 5 /* sl */
start local 5 // int sl
3: .line 12335
getstatic sun.nio.cs.GB18030$Decoder.$assertionsDisabled:Z
ifne 4
iload 4 /* sp */
iload 5 /* sl */
if_icmple 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: .line 12336
StackMap locals: byte[] int int
StackMap stack:
iload 4 /* sp */
iload 5 /* sl */
if_icmpgt 5
iload 4 /* sp */
goto 6
StackMap locals:
StackMap stack:
5: iload 5 /* sl */
StackMap locals:
StackMap stack: int
6: istore 4 /* sp */
7: .line 12338
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.array:()[C
astore 6 /* da */
start local 6 // char[] da
8: .line 12339
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.position:()I
iadd
istore 7 /* dp */
start local 7 // int dp
9: .line 12340
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.limit:()I
iadd
istore 8 /* dl */
start local 8 // int dl
10: .line 12341
getstatic sun.nio.cs.GB18030$Decoder.$assertionsDisabled:Z
ifne 11
iload 7 /* dp */
iload 8 /* dl */
if_icmple 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: .line 12342
StackMap locals: char[] int int
StackMap stack:
iload 7 /* dp */
iload 8 /* dl */
if_icmpgt 12
iload 7 /* dp */
goto 13
StackMap locals:
StackMap stack:
12: iload 8 /* dl */
StackMap locals:
StackMap stack: int
13: istore 7 /* dp */
14: .line 12344
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
15: .line 12347
goto 125
16: .line 12348
StackMap locals: int
StackMap stack:
iconst_0
istore 10 /* byte1 */
start local 10 // int byte1
17: iconst_0
istore 11 /* byte2 */
start local 11 // int byte2
18: iconst_0
istore 12 /* byte3 */
start local 12 // int byte3
19: iconst_0
istore 13 /* byte4 */
start local 13 // int byte4
20: .line 12350
aload 3 /* sa */
iload 4 /* sp */
baload
sipush 255
iand
istore 10 /* byte1 */
21: .line 12351
iconst_1
istore 9 /* inputSize */
22: .line 12353
iload 10 /* byte1 */
bipush -128
iand
ifne 25
23: .line 12354
aload 0 /* this */
iconst_1
putfield sun.nio.cs.GB18030$Decoder.currentState:I
24: .line 12355
goto 69
25: .line 12356
StackMap locals: sun.nio.cs.GB18030$Decoder java.nio.ByteBuffer java.nio.CharBuffer byte[] int int char[] int int int int int int int
StackMap stack:
iload 10 /* byte1 */
sipush 129
if_icmplt 26
iload 10 /* byte1 */
sipush 254
if_icmple 30
26: .line 12357
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
27: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
28: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
29: .line 12357
aload 16
areturn
30: .line 12360
StackMap locals:
StackMap stack:
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_2
if_icmpge 35
31: .line 12361
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
32: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
33: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
34: .line 12361
aload 16
areturn
35: .line 12362
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_1
iadd
baload
sipush 255
iand
istore 11 /* byte2 */
36: .line 12363
iconst_2
istore 9 /* inputSize */
37: .line 12365
iload 11 /* byte2 */
bipush 48
if_icmpge 42
38: .line 12366
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
39: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
40: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
41: .line 12366
aload 16
areturn
42: .line 12367
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 48
if_icmplt 62
iload 11 /* byte2 */
bipush 57
if_icmpgt 62
43: .line 12368
aload 0 /* this */
iconst_3
putfield sun.nio.cs.GB18030$Decoder.currentState:I
44: .line 12370
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_4
if_icmpge 49
45: .line 12371
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
46: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
47: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
48: .line 12371
aload 16
areturn
49: .line 12373
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_2
iadd
baload
sipush 255
iand
istore 12 /* byte3 */
50: .line 12374
iload 12 /* byte3 */
sipush 129
if_icmplt 51
iload 12 /* byte3 */
sipush 254
if_icmple 55
51: .line 12375
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
52: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
53: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
54: .line 12375
aload 16
areturn
55: .line 12377
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_3
iadd
baload
sipush 255
iand
istore 13 /* byte4 */
56: .line 12378
iconst_4
istore 9 /* inputSize */
57: .line 12380
iload 13 /* byte4 */
bipush 48
if_icmplt 58
iload 13 /* byte4 */
bipush 57
if_icmple 69
58: .line 12381
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
59: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
60: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
61: .line 12381
aload 16
areturn
62: .line 12383
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 127
if_icmpeq 64
iload 11 /* byte2 */
sipush 255
if_icmpeq 64
63: .line 12384
iload 11 /* byte2 */
bipush 64
if_icmpge 68
64: .line 12385
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
65: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
66: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
67: .line 12385
aload 16
areturn
68: .line 12388
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.GB18030$Decoder.currentState:I
69: .line 12391
StackMap locals:
StackMap stack:
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_1
if_icmpge 74
70: .line 12392
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
71: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
72: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
73: .line 12392
aload 16
areturn
74: .line 12393
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.GB18030$Decoder.currentState:I
tableswitch { // 1 - 3
1: 75
2: 77
3: 79
default: 123
}
75: .line 12395
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 10 /* byte1 */
i2c
castore
76: .line 12396
goto 123
77: .line 12398
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 10 /* byte1 */
iload 11 /* byte2 */
invokevirtual sun.nio.cs.GB18030$Decoder.decodeDouble:(II)C
castore
78: .line 12399
goto 123
79: .line 12401
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
sipush 129
isub
bipush 10
imul
80: .line 12402
iload 11 /* byte2 */
bipush 48
isub
81: .line 12401
iadd
82: .line 12402
bipush 126
83: .line 12401
imul
84: .line 12403
iload 12 /* byte3 */
85: .line 12401
iadd
86: .line 12403
sipush 129
87: .line 12401
isub
88: .line 12403
bipush 10
89: .line 12401
imul
90: .line 12403
iload 13 /* byte4 */
91: .line 12401
iadd
92: .line 12403
bipush 48
93: .line 12401
isub
istore 14 /* offset */
start local 14 // int offset
94: .line 12411
iload 14 /* offset */
sipush 19042
if_icmpgt 96
95: .line 12412
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 14 /* offset */
invokevirtual sun.nio.cs.GB18030$Decoder.getChar:(I)C
castore
goto 123
96: .line 12413
StackMap locals: int
StackMap stack:
iload 14 /* offset */
sipush 19042
if_icmple 98
iload 14 /* offset */
ldc 33468
if_icmpgt 98
97: .line 12414
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 21827
iadd
i2c
castore
goto 123
98: .line 12415
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33469
if_icmplt 100
iload 14 /* offset */
ldc 33549
if_icmpgt 100
99: .line 12416
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 14 /* offset */
invokevirtual sun.nio.cs.GB18030$Decoder.getChar:(I)C
castore
goto 123
100: .line 12417
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33549
if_icmplt 102
iload 14 /* offset */
ldc 37800
if_icmpgt 102
101: .line 12418
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 25943
iadd
i2c
castore
goto 123
102: .line 12419
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 37801
if_icmplt 104
iload 14 /* offset */
ldc 39419
if_icmpgt 104
103: .line 12420
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 14 /* offset */
invokevirtual sun.nio.cs.GB18030$Decoder.getChar:(I)C
castore
goto 123
104: .line 12422
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 189000
if_icmplt 119
iload 14 /* offset */
ldc 1237576
if_icmpge 119
105: .line 12423
iload 14 /* offset */
ldc 1237576
if_icmplt 110
106: .line 12424
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
107: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
108: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
109: .line 12424
aload 16
areturn
110: .line 12425
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 123464
isub
istore 14 /* offset */
111: .line 12426
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_2
if_icmpge 116
112: .line 12427
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
113: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
114: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
115: .line 12427
aload 16
areturn
116: .line 12429
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
ldc 65536
isub
sipush 1024
idiv
ldc 55296
iadd
i2c
castore
117: .line 12430
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
ldc 65536
isub
sipush 1024
irem
ldc 56320
iadd
i2c
castore
118: .line 12431
goto 123
119: .line 12433
StackMap locals:
StackMap stack:
iload 9 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
120: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
121: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
122: .line 12433
aload 16
areturn
end local 14 // int offset
123: .line 12435
StackMap locals:
StackMap stack:
iload 4 /* sp */
124: .line 12436
iload 9 /* inputSize */
iadd
istore 4 /* sp */
end local 13 // int byte4
end local 12 // int byte3
end local 11 // int byte2
end local 10 // int byte1
125: .line 12347
StackMap locals: sun.nio.cs.GB18030$Decoder java.nio.ByteBuffer java.nio.CharBuffer byte[] int int char[] int int int
StackMap stack:
iload 4 /* sp */
iload 5 /* sl */
if_icmplt 16
126: .line 12438
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
127: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
128: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
129: .line 12438
aload 16
areturn
130: .line 12439
StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
131: .line 12440
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
132: .line 12441
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/CharBuffer;
pop
133: .line 12442
aload 15
athrow
end local 9 // int inputSize
end local 8 // int dl
end local 7 // int dp
end local 6 // char[] da
end local 5 // int sl
end local 4 // int sp
end local 3 // byte[] sa
end local 2 // java.nio.CharBuffer dst
end local 1 // java.nio.ByteBuffer src
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 134 0 this Lsun/nio/cs/GB18030$Decoder;
0 134 1 src Ljava/nio/ByteBuffer;
0 134 2 dst Ljava/nio/CharBuffer;
1 134 3 sa [B
2 134 4 sp I
3 134 5 sl I
8 134 6 da [C
9 134 7 dp I
10 134 8 dl I
15 134 9 inputSize I
17 125 10 byte1 I
18 125 11 byte2 I
19 125 12 byte3 I
20 125 13 byte4 I
94 123 14 offset I
Exception table:
from to target type
15 27 130 any
30 32 130 any
35 39 130 any
42 46 130 any
49 52 130 any
55 59 130 any
62 65 130 any
68 71 130 any
74 107 130 any
110 113 130 any
116 120 130 any
123 127 130 any
MethodParameters:
Name Flags
src
dst
private java.nio.charset.CoderResult decodeBufferLoop(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=12, args_size=3
start local 0 // sun.nio.cs.GB18030$Decoder this
start local 1 // java.nio.ByteBuffer src
start local 2 // java.nio.CharBuffer dst
0: .line 12448
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.position:()I
istore 3 /* mark */
start local 3 // int mark
1: .line 12451
goto 100
2: .line 12452
StackMap locals: int
StackMap stack:
iconst_0
istore 4 /* byte1 */
start local 4 // int byte1
3: iconst_0
istore 5 /* byte2 */
start local 5 // int byte2
4: iconst_0
istore 6 /* byte3 */
start local 6 // int byte3
5: iconst_0
istore 7 /* byte4 */
start local 7 // int byte4
6: .line 12453
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 4 /* byte1 */
7: .line 12454
iconst_1
istore 8 /* inputSize */
start local 8 // int inputSize
8: .line 12456
iload 4 /* byte1 */
bipush -128
iand
ifne 11
9: .line 12457
aload 0 /* this */
iconst_1
putfield sun.nio.cs.GB18030$Decoder.currentState:I
10: .line 12458
goto 48
11: .line 12459
StackMap locals: sun.nio.cs.GB18030$Decoder java.nio.ByteBuffer java.nio.CharBuffer int int int int int int
StackMap stack:
iload 4 /* byte1 */
sipush 129
if_icmplt 12
iload 4 /* byte1 */
sipush 254
if_icmple 15
12: .line 12460
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
13: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
14: .line 12460
aload 11
areturn
15: .line 12463
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_1
if_icmpge 19
16: .line 12464
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
17: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
18: .line 12464
aload 11
areturn
19: .line 12465
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 5 /* byte2 */
20: .line 12466
iconst_2
istore 8 /* inputSize */
21: .line 12468
iload 5 /* byte2 */
bipush 48
if_icmpge 25
22: .line 12469
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
23: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
24: .line 12469
aload 11
areturn
25: .line 12470
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 48
if_icmplt 42
iload 5 /* byte2 */
bipush 57
if_icmpgt 42
26: .line 12471
aload 0 /* this */
iconst_3
putfield sun.nio.cs.GB18030$Decoder.currentState:I
27: .line 12473
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 31
28: .line 12474
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
29: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
30: .line 12474
aload 11
areturn
31: .line 12476
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 6 /* byte3 */
32: .line 12477
iload 6 /* byte3 */
sipush 129
if_icmplt 33
iload 6 /* byte3 */
sipush 254
if_icmple 36
33: .line 12478
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
34: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
35: .line 12478
aload 11
areturn
36: .line 12480
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 7 /* byte4 */
37: .line 12481
iconst_4
istore 8 /* inputSize */
38: .line 12483
iload 7 /* byte4 */
bipush 48
if_icmplt 39
iload 7 /* byte4 */
bipush 57
if_icmple 48
39: .line 12484
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
40: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
41: .line 12484
aload 11
areturn
42: .line 12486
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 127
if_icmpeq 44
iload 5 /* byte2 */
sipush 255
if_icmpeq 44
43: .line 12487
iload 5 /* byte2 */
bipush 64
if_icmpge 47
44: .line 12488
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
45: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
46: .line 12488
aload 11
areturn
47: .line 12491
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.GB18030$Decoder.currentState:I
48: .line 12494
StackMap locals:
StackMap stack:
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_1
if_icmpge 52
49: .line 12495
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
50: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
51: .line 12495
aload 11
areturn
52: .line 12496
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.GB18030$Decoder.currentState:I
tableswitch { // 1 - 3
1: 53
2: 55
3: 57
default: 98
}
53: .line 12498
StackMap locals:
StackMap stack:
aload 2 /* dst */
iload 4 /* byte1 */
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
54: .line 12499
goto 98
55: .line 12501
StackMap locals:
StackMap stack:
aload 2 /* dst */
aload 0 /* this */
iload 4 /* byte1 */
iload 5 /* byte2 */
invokevirtual sun.nio.cs.GB18030$Decoder.decodeDouble:(II)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
56: .line 12502
goto 98
57: .line 12504
StackMap locals:
StackMap stack:
iload 4 /* byte1 */
sipush 129
isub
bipush 10
imul
58: .line 12505
iload 5 /* byte2 */
bipush 48
isub
59: .line 12504
iadd
60: .line 12505
bipush 126
61: .line 12504
imul
62: .line 12506
iload 6 /* byte3 */
63: .line 12504
iadd
64: .line 12506
sipush 129
65: .line 12504
isub
66: .line 12506
bipush 10
67: .line 12504
imul
68: .line 12506
iload 7 /* byte4 */
69: .line 12504
iadd
70: .line 12506
bipush 48
71: .line 12504
isub
istore 9 /* offset */
start local 9 // int offset
72: .line 12514
iload 9 /* offset */
sipush 19042
if_icmpgt 74
73: .line 12515
aload 2 /* dst */
aload 0 /* this */
iload 9 /* offset */
invokevirtual sun.nio.cs.GB18030$Decoder.getChar:(I)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
74: .line 12516
StackMap locals: int
StackMap stack:
iload 9 /* offset */
sipush 19042
if_icmple 76
iload 9 /* offset */
ldc 33468
if_icmpgt 76
75: .line 12517
aload 2 /* dst */
iload 9 /* offset */
sipush 21827
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
76: .line 12518
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33469
if_icmplt 78
iload 9 /* offset */
ldc 33549
if_icmpgt 78
77: .line 12519
aload 2 /* dst */
aload 0 /* this */
iload 9 /* offset */
invokevirtual sun.nio.cs.GB18030$Decoder.getChar:(I)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
78: .line 12520
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33549
if_icmplt 80
iload 9 /* offset */
ldc 37800
if_icmpgt 80
79: .line 12521
aload 2 /* dst */
iload 9 /* offset */
sipush 25943
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
80: .line 12522
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 37801
if_icmplt 82
iload 9 /* offset */
ldc 39419
if_icmpgt 82
81: .line 12523
aload 2 /* dst */
aload 0 /* this */
iload 9 /* offset */
invokevirtual sun.nio.cs.GB18030$Decoder.getChar:(I)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
82: .line 12525
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 189000
if_icmplt 95
iload 9 /* offset */
ldc 1237576
if_icmpge 95
83: .line 12526
iload 9 /* offset */
ldc 1237576
if_icmplt 87
84: .line 12527
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
85: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
86: .line 12527
aload 11
areturn
87: .line 12528
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 123464
isub
istore 9 /* offset */
88: .line 12529
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_2
if_icmpge 92
89: .line 12530
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
90: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
91: .line 12530
aload 11
areturn
92: .line 12532
StackMap locals:
StackMap stack:
aload 2 /* dst */
iload 9 /* offset */
ldc 65536
isub
sipush 1024
idiv
ldc 55296
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
93: .line 12533
aload 2 /* dst */
iload 9 /* offset */
ldc 65536
isub
sipush 1024
irem
ldc 56320
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
94: .line 12534
goto 98
95: .line 12535
StackMap locals:
StackMap stack:
iload 8 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
96: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
97: .line 12535
aload 11
areturn
end local 9 // int offset
98: .line 12537
StackMap locals:
StackMap stack:
iload 3 /* mark */
99: .line 12538
iload 8 /* inputSize */
iadd
istore 3 /* mark */
end local 8 // int inputSize
end local 7 // int byte4
end local 6 // int byte3
end local 5 // int byte2
end local 4 // int byte1
100: .line 12451
StackMap locals: sun.nio.cs.GB18030$Decoder java.nio.ByteBuffer java.nio.CharBuffer int
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
101: .line 12540
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
102: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
103: .line 12540
aload 11
areturn
104: .line 12541
StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
105: .line 12542
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
106: .line 12543
aload 10
athrow
end local 3 // int mark
end local 2 // java.nio.CharBuffer dst
end local 1 // java.nio.ByteBuffer src
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 107 0 this Lsun/nio/cs/GB18030$Decoder;
0 107 1 src Ljava/nio/ByteBuffer;
0 107 2 dst Ljava/nio/CharBuffer;
1 107 3 mark I
3 100 4 byte1 I
4 100 5 byte2 I
5 100 6 byte3 I
6 100 7 byte4 I
8 100 8 inputSize I
72 98 9 offset I
Exception table:
from to target type
1 13 104 any
15 17 104 any
19 23 104 any
25 29 104 any
31 34 104 any
36 40 104 any
42 45 104 any
47 50 104 any
52 85 104 any
87 90 104 any
92 96 104 any
98 102 104 any
MethodParameters:
Name Flags
src
dst
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 // sun.nio.cs.GB18030$Decoder this
start local 1 // java.nio.ByteBuffer src
start local 2 // java.nio.CharBuffer dst
0: .line 12550
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
1: .line 12551
aload 0 /* this */
aload 1 /* src */
aload 2 /* dst */
invokevirtual sun.nio.cs.GB18030$Decoder.decodeArrayLoop:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
areturn
2: .line 12553
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* src */
aload 2 /* dst */
invokevirtual sun.nio.cs.GB18030$Decoder.decodeBufferLoop:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
areturn
end local 2 // java.nio.CharBuffer dst
end local 1 // java.nio.ByteBuffer src
end local 0 // sun.nio.cs.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/GB18030$Decoder;
0 3 1 src Ljava/nio/ByteBuffer;
0 3 2 dst Ljava/nio/CharBuffer;
MethodParameters:
Name Flags
src
dst
}
SourceFile: "GB18030.java"
NestHost: sun.nio.cs.GB18030
InnerClasses:
private Decoder = sun.nio.cs.GB18030$Decoder of sun.nio.cs.GB18030