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 12314
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 12316
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 12320
aload 0 /* this */
aload 1 /* cs */
fconst_1
fconst_2
invokespecial java.nio.charset.CharsetDecoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: .line 12317
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
2: .line 12321
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 12324
iload 1 /* offset */
bipush 8
ishr
sipush 255
iand
istore 2 /* byte1 */
start local 2 // int byte1
1: .line 12325
iload 1 /* offset */
sipush 255
iand
istore 3 /* byte2 */
start local 3 // int byte2
2: .line 12326
iconst_0
istore 4 /* start */
start local 4 // int start
3: sipush 255
istore 5 /* end */
start local 5 // int end
4: .line 12328
iload 2 /* byte1 */
iflt 6
iload 2 /* byte1 */
getstatic sun.nio.cs.ext.GB18030.decoderIndex1:[S
arraylength
if_icmpgt 6
5: .line 12329
iload 3 /* byte2 */
iload 4 /* start */
if_icmplt 6
iload 3 /* byte2 */
iload 5 /* end */
if_icmple 7
6: .line 12330
StackMap locals: sun.nio.cs.ext.GB18030$Decoder int int int int int
StackMap stack:
ldc 65533
ireturn
7: .line 12333
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 12334
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 12338
bipush 64
istore 3 /* start */
start local 3 // int start
1: sipush 254
istore 4 /* end */
start local 4 // int end
2: .line 12339
iload 1 /* byte1 */
iflt 4
iload 1 /* byte1 */
getstatic sun.nio.cs.ext.GB18030.index1:[S
arraylength
if_icmpgt 4
3: .line 12340
iload 2 /* byte2 */
iload 3 /* start */
if_icmplt 4
iload 2 /* byte2 */
iload 4 /* end */
if_icmple 5
4: .line 12341
StackMap locals: int int
StackMap stack:
ldc 65533
ireturn
5: .line 12343
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 12344
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 12348
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
1: .line 12349
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 12354
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.array:()[B
astore 3 /* sa */
start local 3 // byte[] sa
1: .line 12355
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 12356
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 12357
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 12358
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 12360
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.array:()[C
astore 6 /* da */
start local 6 // char[] da
8: .line 12361
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 12362
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 12363
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 12364
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 12366
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
15: .line 12369
goto 125
16: .line 12370
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 12372
aload 3 /* sa */
iload 4 /* sp */
baload
sipush 255
iand
istore 10 /* byte1 */
21: .line 12373
iconst_1
istore 9 /* inputSize */
22: .line 12375
iload 10 /* byte1 */
bipush -128
iand
ifne 25
23: .line 12376
aload 0 /* this */
iconst_1
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
24: .line 12377
goto 69
25: .line 12378
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 12379
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
27: .line 12462
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 12463
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 12379
aload 16
areturn
30: .line 12382
StackMap locals:
StackMap stack:
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_2
if_icmpge 35
31: .line 12383
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
32: .line 12462
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 12463
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 12383
aload 16
areturn
35: .line 12384
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_1
iadd
baload
sipush 255
iand
istore 11 /* byte2 */
36: .line 12385
iconst_2
istore 9 /* inputSize */
37: .line 12387
iload 11 /* byte2 */
bipush 48
if_icmpge 42
38: .line 12388
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
39: .line 12462
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 12463
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 12388
aload 16
areturn
42: .line 12389
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 48
if_icmplt 62
iload 11 /* byte2 */
bipush 57
if_icmpgt 62
43: .line 12390
aload 0 /* this */
iconst_3
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
44: .line 12392
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_4
if_icmpge 49
45: .line 12393
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
46: .line 12462
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 12463
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 12393
aload 16
areturn
49: .line 12395
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_2
iadd
baload
sipush 255
iand
istore 12 /* byte3 */
50: .line 12396
iload 12 /* byte3 */
sipush 129
if_icmplt 51
iload 12 /* byte3 */
sipush 254
if_icmple 55
51: .line 12397
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
52: .line 12462
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 12463
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 12397
aload 16
areturn
55: .line 12399
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_3
iadd
baload
sipush 255
iand
istore 13 /* byte4 */
56: .line 12400
iconst_4
istore 9 /* inputSize */
57: .line 12402
iload 13 /* byte4 */
bipush 48
if_icmplt 58
iload 13 /* byte4 */
bipush 57
if_icmple 69
58: .line 12403
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
59: .line 12462
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 12463
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 12403
aload 16
areturn
62: .line 12405
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 127
if_icmpeq 64
iload 11 /* byte2 */
sipush 255
if_icmpeq 64
63: .line 12406
iload 11 /* byte2 */
bipush 64
if_icmpge 68
64: .line 12407
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
65: .line 12462
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 12463
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 12407
aload 16
areturn
68: .line 12410
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
69: .line 12413
StackMap locals:
StackMap stack:
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_1
if_icmpge 74
70: .line 12414
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
71: .line 12462
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 12463
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 12414
aload 16
areturn
74: .line 12415
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 12417
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 10 /* byte1 */
i2c
castore
76: .line 12418
goto 123
77: .line 12420
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 12421
goto 123
79: .line 12423
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
sipush 129
isub
bipush 10
imul
80: .line 12424
iload 11 /* byte2 */
bipush 48
isub
81: .line 12423
iadd
82: .line 12424
bipush 126
83: .line 12423
imul
84: .line 12425
iload 12 /* byte3 */
85: .line 12423
iadd
86: .line 12425
sipush 129
87: .line 12423
isub
88: .line 12425
bipush 10
89: .line 12423
imul
90: .line 12425
iload 13 /* byte4 */
91: .line 12423
iadd
92: .line 12425
bipush 48
93: .line 12423
isub
istore 14 /* offset */
start local 14 // int offset
94: .line 12433
iload 14 /* offset */
sipush 19042
if_icmpgt 96
95: .line 12434
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 12435
StackMap locals: int
StackMap stack:
iload 14 /* offset */
sipush 19042
if_icmple 98
iload 14 /* offset */
ldc 33468
if_icmpgt 98
97: .line 12436
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 21827
iadd
i2c
castore
goto 123
98: .line 12437
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33469
if_icmplt 100
iload 14 /* offset */
ldc 33549
if_icmpgt 100
99: .line 12438
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 12439
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33549
if_icmplt 102
iload 14 /* offset */
ldc 37800
if_icmpgt 102
101: .line 12440
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 25943
iadd
i2c
castore
goto 123
102: .line 12441
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 37801
if_icmplt 104
iload 14 /* offset */
ldc 39419
if_icmpgt 104
103: .line 12442
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 12444
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 189000
if_icmplt 119
iload 14 /* offset */
ldc 1237576
if_icmpge 119
105: .line 12445
iload 14 /* offset */
ldc 1237576
if_icmplt 110
106: .line 12446
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
107: .line 12462
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 12463
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 12446
aload 16
areturn
110: .line 12447
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 123464
isub
istore 14 /* offset */
111: .line 12448
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_2
if_icmpge 116
112: .line 12449
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
113: .line 12462
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 12463
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 12449
aload 16
areturn
116: .line 12451
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 12452
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 12453
goto 123
119: .line 12455
StackMap locals:
StackMap stack:
iload 9 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
120: .line 12462
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 12463
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 12455
aload 16
areturn
end local 14 // int offset
123: .line 12457
StackMap locals:
StackMap stack:
iload 4 /* sp */
124: .line 12458
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 12369
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 12460
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
127: .line 12462
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 12463
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 12460
aload 16
areturn
130: .line 12461
StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
131: .line 12462
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 12463
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 12464
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 12470
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.position:()I
istore 3 /* mark */
start local 3 // int mark
1: .line 12473
goto 100
2: .line 12474
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 12475
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 4 /* byte1 */
7: .line 12476
iconst_1
istore 8 /* inputSize */
start local 8 // int inputSize
8: .line 12478
iload 4 /* byte1 */
bipush -128
iand
ifne 11
9: .line 12479
aload 0 /* this */
iconst_1
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
10: .line 12480
goto 48
11: .line 12481
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 12482
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
13: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
14: .line 12482
aload 11
areturn
15: .line 12485
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_1
if_icmpge 19
16: .line 12486
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
17: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
18: .line 12486
aload 11
areturn
19: .line 12487
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 5 /* byte2 */
20: .line 12488
iconst_2
istore 8 /* inputSize */
21: .line 12490
iload 5 /* byte2 */
bipush 48
if_icmpge 25
22: .line 12491
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
23: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
24: .line 12491
aload 11
areturn
25: .line 12492
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 48
if_icmplt 42
iload 5 /* byte2 */
bipush 57
if_icmpgt 42
26: .line 12493
aload 0 /* this */
iconst_3
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
27: .line 12495
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 31
28: .line 12496
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
29: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
30: .line 12496
aload 11
areturn
31: .line 12498
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 6 /* byte3 */
32: .line 12499
iload 6 /* byte3 */
sipush 129
if_icmplt 33
iload 6 /* byte3 */
sipush 254
if_icmple 36
33: .line 12500
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
34: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
35: .line 12500
aload 11
areturn
36: .line 12502
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 7 /* byte4 */
37: .line 12503
iconst_4
istore 8 /* inputSize */
38: .line 12505
iload 7 /* byte4 */
bipush 48
if_icmplt 39
iload 7 /* byte4 */
bipush 57
if_icmple 48
39: .line 12506
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
40: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
41: .line 12506
aload 11
areturn
42: .line 12508
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 127
if_icmpeq 44
iload 5 /* byte2 */
sipush 255
if_icmpeq 44
43: .line 12509
iload 5 /* byte2 */
bipush 64
if_icmpge 47
44: .line 12510
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
45: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
46: .line 12510
aload 11
areturn
47: .line 12513
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
48: .line 12516
StackMap locals:
StackMap stack:
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_1
if_icmpge 52
49: .line 12517
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
50: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
51: .line 12517
aload 11
areturn
52: .line 12518
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 12520
StackMap locals:
StackMap stack:
aload 2 /* dst */
iload 4 /* byte1 */
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
54: .line 12521
goto 98
55: .line 12523
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 12524
goto 98
57: .line 12526
StackMap locals:
StackMap stack:
iload 4 /* byte1 */
sipush 129
isub
bipush 10
imul
58: .line 12527
iload 5 /* byte2 */
bipush 48
isub
59: .line 12526
iadd
60: .line 12527
bipush 126
61: .line 12526
imul
62: .line 12528
iload 6 /* byte3 */
63: .line 12526
iadd
64: .line 12528
sipush 129
65: .line 12526
isub
66: .line 12528
bipush 10
67: .line 12526
imul
68: .line 12528
iload 7 /* byte4 */
69: .line 12526
iadd
70: .line 12528
bipush 48
71: .line 12526
isub
istore 9 /* offset */
start local 9 // int offset
72: .line 12536
iload 9 /* offset */
sipush 19042
if_icmpgt 74
73: .line 12537
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 12538
StackMap locals: int
StackMap stack:
iload 9 /* offset */
sipush 19042
if_icmple 76
iload 9 /* offset */
ldc 33468
if_icmpgt 76
75: .line 12539
aload 2 /* dst */
iload 9 /* offset */
sipush 21827
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
76: .line 12540
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33469
if_icmplt 78
iload 9 /* offset */
ldc 33549
if_icmpgt 78
77: .line 12541
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 12542
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33549
if_icmplt 80
iload 9 /* offset */
ldc 37800
if_icmpgt 80
79: .line 12543
aload 2 /* dst */
iload 9 /* offset */
sipush 25943
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
80: .line 12544
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 37801
if_icmplt 82
iload 9 /* offset */
ldc 39417
if_icmpgt 82
81: .line 12545
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 12547
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 189000
if_icmplt 95
iload 9 /* offset */
ldc 1237576
if_icmpge 95
83: .line 12548
iload 9 /* offset */
ldc 1237576
if_icmplt 87
84: .line 12549
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
85: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
86: .line 12549
aload 11
areturn
87: .line 12550
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 123464
isub
istore 9 /* offset */
88: .line 12551
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_2
if_icmpge 92
89: .line 12552
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
90: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
91: .line 12552
aload 11
areturn
92: .line 12554
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 12555
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 12556
goto 98
95: .line 12557
StackMap locals:
StackMap stack:
iload 8 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
96: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
97: .line 12557
aload 11
areturn
end local 9 // int offset
98: .line 12559
StackMap locals:
StackMap stack:
iload 3 /* mark */
99: .line 12560
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 12473
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 12562
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
102: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
103: .line 12562
aload 11
areturn
104: .line 12563
StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
105: .line 12564
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
106: .line 12565
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 12572
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
1: .line 12573
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 12575
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