class sun.nio.cs.ext.GB18030$Decoder extends java.nio.charset.CharsetDecoder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.cs.ext.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 12291
ldc Lsun/nio/cs/ext/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.ext.GB18030$Decoder.$assertionsDisabled:Z
3: .line 12293
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.ext.GB18030$Decoder this
start local 1 // java.nio.charset.Charset cs
0: .line 12297
aload 0 /* this */
aload 1 /* cs */
fconst_1
fconst_2
invokespecial java.nio.charset.CharsetDecoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: .line 12294
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
2: .line 12298
return
end local 1 // java.nio.charset.Charset cs
end local 0 // sun.nio.cs.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/ext/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.ext.GB18030$Decoder this
start local 1 // int offset
0: .line 12301
iload 1 /* offset */
bipush 8
ishr
sipush 255
iand
istore 2 /* byte1 */
start local 2 // int byte1
1: .line 12302
iload 1 /* offset */
sipush 255
iand
istore 3 /* byte2 */
start local 3 // int byte2
2: .line 12303
iconst_0
istore 4 /* start */
start local 4 // int start
3: sipush 255
istore 5 /* end */
start local 5 // int end
4: .line 12305
iload 2 /* byte1 */
iflt 6
iload 2 /* byte1 */
getstatic sun.nio.cs.ext.GB18030.decoderIndex1:[S
arraylength
if_icmpgt 6
5: .line 12306
iload 3 /* byte2 */
iload 4 /* start */
if_icmplt 6
iload 3 /* byte2 */
iload 5 /* end */
if_icmple 7
6: .line 12307
StackMap locals: sun.nio.cs.ext.GB18030$Decoder int int int int int
StackMap stack:
ldc 65533
ireturn
7: .line 12310
StackMap locals:
StackMap stack:
getstatic sun.nio.cs.ext.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 12311
getstatic sun.nio.cs.ext.GB18030.decoderIndex2:[Ljava/lang/String;
getstatic sun.nio.cs.ext.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.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/cs/ext/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.ext.GB18030$Decoder this
start local 1 // int byte1
start local 2 // int byte2
0: .line 12315
bipush 64
istore 3 /* start */
start local 3 // int start
1: sipush 254
istore 4 /* end */
start local 4 // int end
2: .line 12316
iload 1 /* byte1 */
iflt 4
iload 1 /* byte1 */
getstatic sun.nio.cs.ext.GB18030.index1:[S
arraylength
if_icmpgt 4
3: .line 12317
iload 2 /* byte2 */
iload 3 /* start */
if_icmplt 4
iload 2 /* byte2 */
iload 4 /* end */
if_icmple 5
4: .line 12318
StackMap locals: int int
StackMap stack:
ldc 65533
ireturn
5: .line 12320
StackMap locals:
StackMap stack:
getstatic sun.nio.cs.ext.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 12321
getstatic sun.nio.cs.ext.GB18030.index2:[Ljava/lang/String;
getstatic sun.nio.cs.ext.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.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/cs/ext/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.ext.GB18030$Decoder this
0: .line 12325
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
1: .line 12326
return
end local 0 // sun.nio.cs.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/cs/ext/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.ext.GB18030$Decoder this
start local 1 // java.nio.ByteBuffer src
start local 2 // java.nio.CharBuffer dst
0: .line 12331
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.array:()[B
astore 3 /* sa */
start local 3 // byte[] sa
1: .line 12332
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 12333
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 12334
getstatic sun.nio.cs.ext.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 12335
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 12337
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.array:()[C
astore 6 /* da */
start local 6 // char[] da
8: .line 12338
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 12339
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 12340
getstatic sun.nio.cs.ext.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 12341
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 12343
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
15: .line 12346
goto 125
16: .line 12347
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 12349
aload 3 /* sa */
iload 4 /* sp */
baload
sipush 255
iand
istore 10 /* byte1 */
21: .line 12350
iconst_1
istore 9 /* inputSize */
22: .line 12352
iload 10 /* byte1 */
bipush -128
iand
ifne 25
23: .line 12353
aload 0 /* this */
iconst_1
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
24: .line 12354
goto 69
25: .line 12355
StackMap locals: sun.nio.cs.ext.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 12356
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
27: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
28: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
29: .line 12356
aload 16
areturn
30: .line 12359
StackMap locals:
StackMap stack:
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_2
if_icmpge 35
31: .line 12360
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
32: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
33: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
34: .line 12360
aload 16
areturn
35: .line 12361
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_1
iadd
baload
sipush 255
iand
istore 11 /* byte2 */
36: .line 12362
iconst_2
istore 9 /* inputSize */
37: .line 12364
iload 11 /* byte2 */
bipush 48
if_icmpge 42
38: .line 12365
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
39: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
40: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
41: .line 12365
aload 16
areturn
42: .line 12366
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 48
if_icmplt 62
iload 11 /* byte2 */
bipush 57
if_icmpgt 62
43: .line 12367
aload 0 /* this */
iconst_3
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
44: .line 12369
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_4
if_icmpge 49
45: .line 12370
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
46: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
47: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
48: .line 12370
aload 16
areturn
49: .line 12372
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_2
iadd
baload
sipush 255
iand
istore 12 /* byte3 */
50: .line 12373
iload 12 /* byte3 */
sipush 129
if_icmplt 51
iload 12 /* byte3 */
sipush 254
if_icmple 55
51: .line 12374
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
52: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
53: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
54: .line 12374
aload 16
areturn
55: .line 12376
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_3
iadd
baload
sipush 255
iand
istore 13 /* byte4 */
56: .line 12377
iconst_4
istore 9 /* inputSize */
57: .line 12379
iload 13 /* byte4 */
bipush 48
if_icmplt 58
iload 13 /* byte4 */
bipush 57
if_icmple 69
58: .line 12380
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
59: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
60: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
61: .line 12380
aload 16
areturn
62: .line 12382
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 127
if_icmpeq 64
iload 11 /* byte2 */
sipush 255
if_icmpeq 64
63: .line 12383
iload 11 /* byte2 */
bipush 64
if_icmpge 68
64: .line 12384
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
65: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
66: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
67: .line 12384
aload 16
areturn
68: .line 12387
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
69: .line 12390
StackMap locals:
StackMap stack:
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_1
if_icmpge 74
70: .line 12391
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
71: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
72: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
73: .line 12391
aload 16
areturn
74: .line 12392
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
tableswitch { // 1 - 3
1: 75
2: 77
3: 79
default: 123
}
75: .line 12394
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 10 /* byte1 */
i2c
castore
76: .line 12395
goto 123
77: .line 12397
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.ext.GB18030$Decoder.decodeDouble:(II)C
castore
78: .line 12398
goto 123
79: .line 12400
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
sipush 129
isub
bipush 10
imul
80: .line 12401
iload 11 /* byte2 */
bipush 48
isub
81: .line 12400
iadd
82: .line 12401
bipush 126
83: .line 12400
imul
84: .line 12402
iload 12 /* byte3 */
85: .line 12400
iadd
86: .line 12402
sipush 129
87: .line 12400
isub
88: .line 12402
bipush 10
89: .line 12400
imul
90: .line 12402
iload 13 /* byte4 */
91: .line 12400
iadd
92: .line 12402
bipush 48
93: .line 12400
isub
istore 14 /* offset */
start local 14 // int offset
94: .line 12410
iload 14 /* offset */
sipush 19042
if_icmpgt 96
95: .line 12411
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 14 /* offset */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.getChar:(I)C
castore
goto 123
96: .line 12412
StackMap locals: int
StackMap stack:
iload 14 /* offset */
sipush 19042
if_icmple 98
iload 14 /* offset */
ldc 33468
if_icmpgt 98
97: .line 12413
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 21827
iadd
i2c
castore
goto 123
98: .line 12414
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33469
if_icmplt 100
iload 14 /* offset */
ldc 33549
if_icmpgt 100
99: .line 12415
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 14 /* offset */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.getChar:(I)C
castore
goto 123
100: .line 12416
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33549
if_icmplt 102
iload 14 /* offset */
ldc 37800
if_icmpgt 102
101: .line 12417
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 25943
iadd
i2c
castore
goto 123
102: .line 12418
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 37801
if_icmplt 104
iload 14 /* offset */
ldc 39419
if_icmpgt 104
103: .line 12419
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 0 /* this */
iload 14 /* offset */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.getChar:(I)C
castore
goto 123
104: .line 12421
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 189000
if_icmplt 119
iload 14 /* offset */
ldc 1237576
if_icmpge 119
105: .line 12422
iload 14 /* offset */
ldc 1237576
if_icmplt 110
106: .line 12423
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
107: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
108: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
109: .line 12423
aload 16
areturn
110: .line 12424
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 123464
isub
istore 14 /* offset */
111: .line 12425
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_2
if_icmpge 116
112: .line 12426
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
113: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
114: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
115: .line 12426
aload 16
areturn
116: .line 12428
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 12429
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 12430
goto 123
119: .line 12432
StackMap locals:
StackMap stack:
iload 9 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
120: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
121: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
122: .line 12432
aload 16
areturn
end local 14 // int offset
123: .line 12434
StackMap locals:
StackMap stack:
iload 4 /* sp */
124: .line 12435
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 12346
StackMap locals: sun.nio.cs.ext.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 12437
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
127: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
128: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
129: .line 12437
aload 16
areturn
130: .line 12438
StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
131: .line 12439
aload 1 /* src */
iload 4 /* sp */
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
132: .line 12440
aload 2 /* dst */
iload 7 /* dp */
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
isub
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
133: .line 12441
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.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 134 0 this Lsun/nio/cs/ext/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.ext.GB18030$Decoder this
start local 1 // java.nio.ByteBuffer src
start local 2 // java.nio.CharBuffer dst
0: .line 12447
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.position:()I
istore 3 /* mark */
start local 3 // int mark
1: .line 12450
goto 100
2: .line 12451
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 12452
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 4 /* byte1 */
7: .line 12453
iconst_1
istore 8 /* inputSize */
start local 8 // int inputSize
8: .line 12455
iload 4 /* byte1 */
bipush -128
iand
ifne 11
9: .line 12456
aload 0 /* this */
iconst_1
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
10: .line 12457
goto 48
11: .line 12458
StackMap locals: sun.nio.cs.ext.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 12459
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
13: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
14: .line 12459
aload 11
areturn
15: .line 12462
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_1
if_icmpge 19
16: .line 12463
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
17: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
18: .line 12463
aload 11
areturn
19: .line 12464
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 5 /* byte2 */
20: .line 12465
iconst_2
istore 8 /* inputSize */
21: .line 12467
iload 5 /* byte2 */
bipush 48
if_icmpge 25
22: .line 12468
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
23: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
24: .line 12468
aload 11
areturn
25: .line 12469
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 48
if_icmplt 42
iload 5 /* byte2 */
bipush 57
if_icmpgt 42
26: .line 12470
aload 0 /* this */
iconst_3
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
27: .line 12472
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 31
28: .line 12473
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
29: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
30: .line 12473
aload 11
areturn
31: .line 12475
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 6 /* byte3 */
32: .line 12476
iload 6 /* byte3 */
sipush 129
if_icmplt 33
iload 6 /* byte3 */
sipush 254
if_icmple 36
33: .line 12477
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
34: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
35: .line 12477
aload 11
areturn
36: .line 12479
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 7 /* byte4 */
37: .line 12480
iconst_4
istore 8 /* inputSize */
38: .line 12482
iload 7 /* byte4 */
bipush 48
if_icmplt 39
iload 7 /* byte4 */
bipush 57
if_icmple 48
39: .line 12483
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
40: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
41: .line 12483
aload 11
areturn
42: .line 12485
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 127
if_icmpeq 44
iload 5 /* byte2 */
sipush 255
if_icmpeq 44
43: .line 12486
iload 5 /* byte2 */
bipush 64
if_icmpge 47
44: .line 12487
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
45: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
46: .line 12487
aload 11
areturn
47: .line 12490
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
48: .line 12493
StackMap locals:
StackMap stack:
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_1
if_icmpge 52
49: .line 12494
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
50: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
51: .line 12494
aload 11
areturn
52: .line 12495
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
tableswitch { // 1 - 3
1: 53
2: 55
3: 57
default: 98
}
53: .line 12497
StackMap locals:
StackMap stack:
aload 2 /* dst */
iload 4 /* byte1 */
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
54: .line 12498
goto 98
55: .line 12500
StackMap locals:
StackMap stack:
aload 2 /* dst */
aload 0 /* this */
iload 4 /* byte1 */
iload 5 /* byte2 */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.decodeDouble:(II)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
56: .line 12501
goto 98
57: .line 12503
StackMap locals:
StackMap stack:
iload 4 /* byte1 */
sipush 129
isub
bipush 10
imul
58: .line 12504
iload 5 /* byte2 */
bipush 48
isub
59: .line 12503
iadd
60: .line 12504
bipush 126
61: .line 12503
imul
62: .line 12505
iload 6 /* byte3 */
63: .line 12503
iadd
64: .line 12505
sipush 129
65: .line 12503
isub
66: .line 12505
bipush 10
67: .line 12503
imul
68: .line 12505
iload 7 /* byte4 */
69: .line 12503
iadd
70: .line 12505
bipush 48
71: .line 12503
isub
istore 9 /* offset */
start local 9 // int offset
72: .line 12513
iload 9 /* offset */
sipush 19042
if_icmpgt 74
73: .line 12514
aload 2 /* dst */
aload 0 /* this */
iload 9 /* offset */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.getChar:(I)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
74: .line 12515
StackMap locals: int
StackMap stack:
iload 9 /* offset */
sipush 19042
if_icmple 76
iload 9 /* offset */
ldc 33468
if_icmpgt 76
75: .line 12516
aload 2 /* dst */
iload 9 /* offset */
sipush 21827
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
76: .line 12517
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33469
if_icmplt 78
iload 9 /* offset */
ldc 33549
if_icmpgt 78
77: .line 12518
aload 2 /* dst */
aload 0 /* this */
iload 9 /* offset */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.getChar:(I)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
78: .line 12519
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33549
if_icmplt 80
iload 9 /* offset */
ldc 37800
if_icmpgt 80
79: .line 12520
aload 2 /* dst */
iload 9 /* offset */
sipush 25943
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
80: .line 12521
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 37801
if_icmplt 82
iload 9 /* offset */
ldc 39419
if_icmpgt 82
81: .line 12522
aload 2 /* dst */
aload 0 /* this */
iload 9 /* offset */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.getChar:(I)C
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
82: .line 12524
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 189000
if_icmplt 95
iload 9 /* offset */
ldc 1237576
if_icmpge 95
83: .line 12525
iload 9 /* offset */
ldc 1237576
if_icmplt 87
84: .line 12526
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
85: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
86: .line 12526
aload 11
areturn
87: .line 12527
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 123464
isub
istore 9 /* offset */
88: .line 12528
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_2
if_icmpge 92
89: .line 12529
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
90: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
91: .line 12529
aload 11
areturn
92: .line 12531
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 12532
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 12533
goto 98
95: .line 12534
StackMap locals:
StackMap stack:
iload 8 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
96: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
97: .line 12534
aload 11
areturn
end local 9 // int offset
98: .line 12536
StackMap locals:
StackMap stack:
iload 3 /* mark */
99: .line 12537
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 12450
StackMap locals: sun.nio.cs.ext.GB18030$Decoder java.nio.ByteBuffer java.nio.CharBuffer int
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
101: .line 12539
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
102: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
103: .line 12539
aload 11
areturn
104: .line 12540
StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
105: .line 12541
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
106: .line 12542
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.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 107 0 this Lsun/nio/cs/ext/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.ext.GB18030$Decoder this
start local 1 // java.nio.ByteBuffer src
start local 2 // java.nio.CharBuffer dst
0: .line 12549
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
1: .line 12550
aload 0 /* this */
aload 1 /* src */
aload 2 /* dst */
invokevirtual sun.nio.cs.ext.GB18030$Decoder.decodeArrayLoop:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
areturn
2: .line 12552
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* src */
aload 2 /* dst */
invokevirtual sun.nio.cs.ext.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.ext.GB18030$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/ext/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.ext.GB18030
InnerClasses:
private Decoder = sun.nio.cs.ext.GB18030$Decoder of sun.nio.cs.ext.GB18030