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 12315
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 12317
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 12321
aload 0 /* this */
aload 1 /* cs */
fconst_1
fconst_2
invokespecial java.nio.charset.CharsetDecoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: .line 12318
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
2: .line 12322
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 12325
iload 1 /* offset */
bipush 8
ishr
sipush 255
iand
istore 2 /* byte1 */
start local 2 // int byte1
1: .line 12326
iload 1 /* offset */
sipush 255
iand
istore 3 /* byte2 */
start local 3 // int byte2
2: .line 12327
iconst_0
istore 4 /* start */
start local 4 // int start
3: sipush 255
istore 5 /* end */
start local 5 // int end
4: .line 12329
iload 2 /* byte1 */
iflt 6
iload 2 /* byte1 */
getstatic sun.nio.cs.ext.GB18030.decoderIndex1:[S
arraylength
if_icmpgt 6
5: .line 12330
iload 3 /* byte2 */
iload 4 /* start */
if_icmplt 6
iload 3 /* byte2 */
iload 5 /* end */
if_icmple 7
6: .line 12331
StackMap locals: sun.nio.cs.ext.GB18030$Decoder int int int int int
StackMap stack:
ldc 65533
ireturn
7: .line 12334
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 12335
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 12339
bipush 64
istore 3 /* start */
start local 3 // int start
1: sipush 254
istore 4 /* end */
start local 4 // int end
2: .line 12340
iload 1 /* byte1 */
iflt 4
iload 1 /* byte1 */
getstatic sun.nio.cs.ext.GB18030.index1:[S
arraylength
if_icmpgt 4
3: .line 12341
iload 2 /* byte2 */
iload 3 /* start */
if_icmplt 4
iload 2 /* byte2 */
iload 4 /* end */
if_icmple 5
4: .line 12342
StackMap locals: int int
StackMap stack:
ldc 65533
ireturn
5: .line 12344
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 12345
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 12349
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
1: .line 12350
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 12355
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.array:()[B
astore 3 /* sa */
start local 3 // byte[] sa
1: .line 12356
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 12357
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 12358
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 12359
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 12361
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.array:()[C
astore 6 /* da */
start local 6 // char[] da
8: .line 12362
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 12363
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 12364
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 12365
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 12367
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
15: .line 12370
goto 125
16: .line 12371
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 12373
aload 3 /* sa */
iload 4 /* sp */
baload
sipush 255
iand
istore 10 /* byte1 */
21: .line 12374
iconst_1
istore 9 /* inputSize */
22: .line 12376
iload 10 /* byte1 */
bipush -128
iand
ifne 25
23: .line 12377
aload 0 /* this */
iconst_1
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
24: .line 12378
goto 69
25: .line 12379
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 12380
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
27: .line 12463
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 12464
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 12380
aload 16
areturn
30: .line 12383
StackMap locals:
StackMap stack:
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_2
if_icmpge 35
31: .line 12384
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
32: .line 12463
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 12464
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 12384
aload 16
areturn
35: .line 12385
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_1
iadd
baload
sipush 255
iand
istore 11 /* byte2 */
36: .line 12386
iconst_2
istore 9 /* inputSize */
37: .line 12388
iload 11 /* byte2 */
bipush 48
if_icmpge 42
38: .line 12389
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
39: .line 12463
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 12464
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 12389
aload 16
areturn
42: .line 12390
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 48
if_icmplt 62
iload 11 /* byte2 */
bipush 57
if_icmpgt 62
43: .line 12391
aload 0 /* this */
iconst_3
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
44: .line 12393
iload 5 /* sl */
iload 4 /* sp */
isub
iconst_4
if_icmpge 49
45: .line 12394
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
46: .line 12463
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 12464
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 12394
aload 16
areturn
49: .line 12396
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_2
iadd
baload
sipush 255
iand
istore 12 /* byte3 */
50: .line 12397
iload 12 /* byte3 */
sipush 129
if_icmplt 51
iload 12 /* byte3 */
sipush 254
if_icmple 55
51: .line 12398
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
52: .line 12463
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 12464
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 12398
aload 16
areturn
55: .line 12400
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
iconst_3
iadd
baload
sipush 255
iand
istore 13 /* byte4 */
56: .line 12401
iconst_4
istore 9 /* inputSize */
57: .line 12403
iload 13 /* byte4 */
bipush 48
if_icmplt 58
iload 13 /* byte4 */
bipush 57
if_icmple 69
58: .line 12404
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
59: .line 12463
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 12464
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 12404
aload 16
areturn
62: .line 12406
StackMap locals:
StackMap stack:
iload 11 /* byte2 */
bipush 127
if_icmpeq 64
iload 11 /* byte2 */
sipush 255
if_icmpeq 64
63: .line 12407
iload 11 /* byte2 */
bipush 64
if_icmpge 68
64: .line 12408
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
65: .line 12463
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 12464
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 12408
aload 16
areturn
68: .line 12411
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
69: .line 12414
StackMap locals:
StackMap stack:
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_1
if_icmpge 74
70: .line 12415
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
71: .line 12463
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 12464
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 12415
aload 16
areturn
74: .line 12416
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 12418
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 10 /* byte1 */
i2c
castore
76: .line 12419
goto 123
77: .line 12421
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 12422
goto 123
79: .line 12424
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
sipush 129
isub
bipush 10
imul
80: .line 12425
iload 11 /* byte2 */
bipush 48
isub
81: .line 12424
iadd
82: .line 12425
bipush 126
83: .line 12424
imul
84: .line 12426
iload 12 /* byte3 */
85: .line 12424
iadd
86: .line 12426
sipush 129
87: .line 12424
isub
88: .line 12426
bipush 10
89: .line 12424
imul
90: .line 12426
iload 13 /* byte4 */
91: .line 12424
iadd
92: .line 12426
bipush 48
93: .line 12424
isub
istore 14 /* offset */
start local 14 // int offset
94: .line 12434
iload 14 /* offset */
sipush 19042
if_icmpgt 96
95: .line 12435
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 12436
StackMap locals: int
StackMap stack:
iload 14 /* offset */
sipush 19042
if_icmple 98
iload 14 /* offset */
ldc 33468
if_icmpgt 98
97: .line 12437
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 21827
iadd
i2c
castore
goto 123
98: .line 12438
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33469
if_icmplt 100
iload 14 /* offset */
ldc 33549
if_icmpgt 100
99: .line 12439
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 12440
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 33549
if_icmplt 102
iload 14 /* offset */
ldc 37800
if_icmpgt 102
101: .line 12441
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 14 /* offset */
sipush 25943
iadd
i2c
castore
goto 123
102: .line 12442
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 37801
if_icmplt 104
iload 14 /* offset */
ldc 39419
if_icmpgt 104
103: .line 12443
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 12445
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 189000
if_icmplt 119
iload 14 /* offset */
ldc 1237576
if_icmpge 119
105: .line 12446
iload 14 /* offset */
ldc 1237576
if_icmplt 110
106: .line 12447
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
107: .line 12463
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 12464
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 12447
aload 16
areturn
110: .line 12448
StackMap locals:
StackMap stack:
iload 14 /* offset */
ldc 123464
isub
istore 14 /* offset */
111: .line 12449
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_2
if_icmpge 116
112: .line 12450
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 16
113: .line 12463
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 12464
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 12450
aload 16
areturn
116: .line 12452
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 12453
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 12454
goto 123
119: .line 12456
StackMap locals:
StackMap stack:
iload 9 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 16
120: .line 12463
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 12464
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 12456
aload 16
areturn
end local 14 // int offset
123: .line 12458
StackMap locals:
StackMap stack:
iload 4 /* sp */
124: .line 12459
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 12370
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 12461
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 16
127: .line 12463
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 12464
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 12461
aload 16
areturn
130: .line 12462
StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
131: .line 12463
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 12464
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 12465
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 12471
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.position:()I
istore 3 /* mark */
start local 3 // int mark
1: .line 12474
goto 100
2: .line 12475
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 12476
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 4 /* byte1 */
7: .line 12477
iconst_1
istore 8 /* inputSize */
start local 8 // int inputSize
8: .line 12479
iload 4 /* byte1 */
bipush -128
iand
ifne 11
9: .line 12480
aload 0 /* this */
iconst_1
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
10: .line 12481
goto 48
11: .line 12482
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 12483
StackMap locals:
StackMap stack:
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
13: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
14: .line 12483
aload 11
areturn
15: .line 12486
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_1
if_icmpge 19
16: .line 12487
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
17: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
18: .line 12487
aload 11
areturn
19: .line 12488
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 5 /* byte2 */
20: .line 12489
iconst_2
istore 8 /* inputSize */
21: .line 12491
iload 5 /* byte2 */
bipush 48
if_icmpge 25
22: .line 12492
iconst_1
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
23: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
24: .line 12492
aload 11
areturn
25: .line 12493
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 48
if_icmplt 42
iload 5 /* byte2 */
bipush 57
if_icmpgt 42
26: .line 12494
aload 0 /* this */
iconst_3
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
27: .line 12496
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 31
28: .line 12497
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
29: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
30: .line 12497
aload 11
areturn
31: .line 12499
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 6 /* byte3 */
32: .line 12500
iload 6 /* byte3 */
sipush 129
if_icmplt 33
iload 6 /* byte3 */
sipush 254
if_icmple 36
33: .line 12501
StackMap locals:
StackMap stack:
iconst_3
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
34: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
35: .line 12501
aload 11
areturn
36: .line 12503
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 7 /* byte4 */
37: .line 12504
iconst_4
istore 8 /* inputSize */
38: .line 12506
iload 7 /* byte4 */
bipush 48
if_icmplt 39
iload 7 /* byte4 */
bipush 57
if_icmple 48
39: .line 12507
StackMap locals:
StackMap stack:
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
40: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
41: .line 12507
aload 11
areturn
42: .line 12509
StackMap locals:
StackMap stack:
iload 5 /* byte2 */
bipush 127
if_icmpeq 44
iload 5 /* byte2 */
sipush 255
if_icmpeq 44
43: .line 12510
iload 5 /* byte2 */
bipush 64
if_icmpge 47
44: .line 12511
StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
45: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
46: .line 12511
aload 11
areturn
47: .line 12514
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.nio.cs.ext.GB18030$Decoder.currentState:I
48: .line 12517
StackMap locals:
StackMap stack:
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_1
if_icmpge 52
49: .line 12518
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
50: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
51: .line 12518
aload 11
areturn
52: .line 12519
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 12521
StackMap locals:
StackMap stack:
aload 2 /* dst */
iload 4 /* byte1 */
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
54: .line 12522
goto 98
55: .line 12524
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 12525
goto 98
57: .line 12527
StackMap locals:
StackMap stack:
iload 4 /* byte1 */
sipush 129
isub
bipush 10
imul
58: .line 12528
iload 5 /* byte2 */
bipush 48
isub
59: .line 12527
iadd
60: .line 12528
bipush 126
61: .line 12527
imul
62: .line 12529
iload 6 /* byte3 */
63: .line 12527
iadd
64: .line 12529
sipush 129
65: .line 12527
isub
66: .line 12529
bipush 10
67: .line 12527
imul
68: .line 12529
iload 7 /* byte4 */
69: .line 12527
iadd
70: .line 12529
bipush 48
71: .line 12527
isub
istore 9 /* offset */
start local 9 // int offset
72: .line 12537
iload 9 /* offset */
sipush 19042
if_icmpgt 74
73: .line 12538
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 12539
StackMap locals: int
StackMap stack:
iload 9 /* offset */
sipush 19042
if_icmple 76
iload 9 /* offset */
ldc 33468
if_icmpgt 76
75: .line 12540
aload 2 /* dst */
iload 9 /* offset */
sipush 21827
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
76: .line 12541
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33469
if_icmplt 78
iload 9 /* offset */
ldc 33549
if_icmpgt 78
77: .line 12542
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 12543
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 33549
if_icmplt 80
iload 9 /* offset */
ldc 37800
if_icmpgt 80
79: .line 12544
aload 2 /* dst */
iload 9 /* offset */
sipush 25943
iadd
i2c
invokevirtual java.nio.CharBuffer.put:(C)Ljava/nio/CharBuffer;
pop
goto 98
80: .line 12545
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 37801
if_icmplt 82
iload 9 /* offset */
ldc 39417
if_icmpgt 82
81: .line 12546
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 12548
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 189000
if_icmplt 95
iload 9 /* offset */
ldc 1237576
if_icmpge 95
83: .line 12549
iload 9 /* offset */
ldc 1237576
if_icmplt 87
84: .line 12550
iconst_4
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
85: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
86: .line 12550
aload 11
areturn
87: .line 12551
StackMap locals:
StackMap stack:
iload 9 /* offset */
ldc 123464
isub
istore 9 /* offset */
88: .line 12552
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.remaining:()I
iconst_2
if_icmpge 92
89: .line 12553
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
astore 11
90: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
91: .line 12553
aload 11
areturn
92: .line 12555
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 12556
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 12557
goto 98
95: .line 12558
StackMap locals:
StackMap stack:
iload 8 /* inputSize */
invokestatic java.nio.charset.CoderResult.malformedForLength:(I)Ljava/nio/charset/CoderResult;
astore 11
96: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
97: .line 12558
aload 11
areturn
end local 9 // int offset
98: .line 12560
StackMap locals:
StackMap stack:
iload 3 /* mark */
99: .line 12561
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 12474
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 12563
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
astore 11
102: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
103: .line 12563
aload 11
areturn
104: .line 12564
StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
105: .line 12565
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
106: .line 12566
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 12573
aload 1 /* src */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
aload 2 /* dst */
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
1: .line 12574
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 12576
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