public class sun.io.ByteToCharGB18030 extends sun.io.ByteToCharGB18030DB
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.io.ByteToCharGB18030
super_class: sun.io.ByteToCharGB18030DB
{
private static final int GB18030_SINGLE_BYTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int GB18030_DOUBLE_BYTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int GB18030_FOUR_BYTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static short[] decoderIndex1;
descriptor: [S
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.String[] decoderIndex2;
descriptor: [Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private int currentState;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int savedSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] savedBytes;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial sun.io.ByteToCharGB18030DB.<init>:()V
1: new sun.nio.cs.ext.GB18030
dup
invokespecial sun.nio.cs.ext.GB18030.<init>:()V
astore 1
start local 1 2: aload 0
iconst_3
newarray 8
putfield sun.io.ByteToCharGB18030.savedBytes:[B
3: aload 0
iconst_2
putfield sun.io.ByteToCharGB18030.currentState:I
4: aload 1
invokevirtual sun.nio.cs.ext.GB18030.getDecoderIndex1:()[S
putstatic sun.io.ByteToCharGB18030.decoderIndex1:[S
5: aload 1
invokevirtual sun.nio.cs.ext.GB18030.getDecoderIndex2:()[Ljava/lang/String;
putstatic sun.io.ByteToCharGB18030.decoderIndex2:[Ljava/lang/String;
6: aload 0
iconst_0
putfield sun.io.ByteToCharGB18030.savedSize:I
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/io/ByteToCharGB18030;
2 8 1 nioCoder Lsun/nio/cs/ext/GB18030;
public short[] getOuter();
descriptor: ()[S
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.io.ByteToCharGB18030.index1:[S
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/ByteToCharGB18030;
public java.lang.String[] getInner();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.io.ByteToCharGB18030.index2:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/ByteToCharGB18030;
public short[] getDBIndex1();
descriptor: ()[S
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.io.ByteToCharGB18030DB.index1:[S
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/ByteToCharGB18030;
public java.lang.String[] getDBIndex2();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.io.ByteToCharGB18030DB.index2:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/ByteToCharGB18030;
public int flush(char[], int, int);
descriptor: ([CII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
ifeq 5
1: aload 0
iconst_0
putfield sun.io.ByteToCharGB18030.savedSize:I
2: aload 0
iconst_2
putfield sun.io.ByteToCharGB18030.currentState:I
3: aload 0
iconst_0
putfield sun.io.ByteToCharGB18030.badInputLength:I
4: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 0
iconst_0
dup_x1
putfield sun.io.ByteToCharGB18030.charOff:I
putfield sun.io.ByteToCharGB18030.byteOff:I
6: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/io/ByteToCharGB18030;
0 7 1 output [C
0 7 2 outStart I
0 7 3 outEnd I
Exceptions:
throws sun.io.MalformedInputException
MethodParameters:
Name Flags
output
outStart
outEnd
public int convert(byte[], int, int, char[], int, int);
descriptor: ([BII[CII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=16, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iconst_0
istore 7
start local 7 1: aload 0
iload 2
dup_x1
putfield sun.io.ByteToCharGB18030.byteOff:I
istore 8
start local 8 2: aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
ifeq 23
3: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_0
baload
sipush 255
iand
sipush 129
if_icmplt 9
aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_0
baload
sipush 254
if_icmpgt 9
4: aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
iconst_1
if_icmple 6
5: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_1
baload
sipush 255
iand
bipush 48
if_icmplt 9
6: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
iconst_2
if_icmple 11
7: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_2
baload
sipush 255
iand
sipush 129
if_icmplt 9
8: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_2
baload
sipush 255
iand
sipush 254
if_icmple 11
9: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.io.ByteToCharGB18030.badInputLength:I
10: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
iload 3
iload 2
isub
aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
iadd
newarray 8
astore 9
start local 9 12: iconst_0
istore 10
start local 10 13: goto 16
14: StackMap locals: byte[] int
StackMap stack:
aload 9
iload 10
aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iload 10
baload
bastore
15: iinc 10 1
StackMap locals:
StackMap stack:
16: iload 10
aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
if_icmplt 14
end local 10 17: aload 1
iload 2
aload 9
aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
iload 3
iload 2
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: aload 0
dup
getfield sun.io.ByteToCharGB18030.byteOff:I
aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
isub
putfield sun.io.ByteToCharGB18030.byteOff:I
19: aload 9
astore 1
20: iconst_0
istore 2
21: aload 9
arraylength
istore 3
22: aload 0
iconst_0
putfield sun.io.ByteToCharGB18030.savedSize:I
end local 9 23: StackMap locals:
StackMap stack:
aload 0
iload 5
putfield sun.io.ByteToCharGB18030.charOff:I
24: iload 2
istore 8
25: goto 127
26: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 27: iconst_0
istore 10
start local 10 28: iconst_0
istore 11
start local 11 29: iconst_0
istore 12
start local 12 30: aload 0
getfield sun.io.ByteToCharGB18030.charOff:I
iload 6
if_icmplt 32
31: new sun.io.ConversionBufferFullException
dup
invokespecial sun.io.ConversionBufferFullException.<init>:()V
athrow
32: StackMap locals: sun.io.ByteToCharGB18030 byte[] int int char[] int int int int int int int int
StackMap stack:
aload 1
iload 8
iinc 8 1
baload
sipush 255
iand
istore 9
33: iconst_1
istore 7
34: iload 9
bipush -128
iand
ifne 38
35: iload 9
i2c
pop
36: aload 0
iconst_1
putfield sun.io.ByteToCharGB18030.currentState:I
37: goto 79
38: StackMap locals:
StackMap stack:
iload 9
sipush 129
if_icmplt 39
iload 9
sipush 254
if_icmple 43
39: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharGB18030.subMode:Z
ifeq 41
40: aload 0
getfield sun.io.ByteToCharGB18030.subChars:[C
iconst_0
caload
pop
goto 79
41: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.io.ByteToCharGB18030.badInputLength:I
42: new sun.io.UnknownCharacterException
dup
invokespecial sun.io.UnknownCharacterException.<init>:()V
athrow
43: StackMap locals:
StackMap stack:
iload 8
iload 7
iadd
iload 3
if_icmple 47
44: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_0
iload 9
i2b
bastore
45: aload 0
iconst_1
putfield sun.io.ByteToCharGB18030.savedSize:I
46: goto 128
47: StackMap locals:
StackMap stack:
aload 1
iload 8
iinc 8 1
baload
sipush 255
iand
istore 10
48: iconst_2
istore 7
49: iload 10
bipush 48
if_icmpge 52
50: aload 0
iconst_1
putfield sun.io.ByteToCharGB18030.badInputLength:I
51: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
52: StackMap locals:
StackMap stack:
iload 10
bipush 48
if_icmplt 74
iload 10
bipush 57
if_icmpgt 74
53: aload 0
iconst_3
putfield sun.io.ByteToCharGB18030.currentState:I
54: iconst_4
istore 7
55: iload 8
iconst_2
iadd
iload 3
if_icmple 66
56: iload 8
iconst_1
iadd
iload 3
if_icmple 61
57: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_0
iload 9
i2b
bastore
58: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_1
iload 10
i2b
bastore
59: aload 0
iconst_2
putfield sun.io.ByteToCharGB18030.savedSize:I
60: goto 128
61: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_0
iload 9
i2b
bastore
62: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_1
iload 10
i2b
bastore
63: aload 0
getfield sun.io.ByteToCharGB18030.savedBytes:[B
iconst_2
aload 1
iload 8
iinc 8 1
baload
bastore
64: aload 0
iconst_3
putfield sun.io.ByteToCharGB18030.savedSize:I
65: goto 128
66: StackMap locals:
StackMap stack:
aload 1
iload 8
iinc 8 1
baload
sipush 255
iand
istore 11
67: iload 11
sipush 129
if_icmplt 68
iload 11
sipush 254
if_icmple 70
68: StackMap locals:
StackMap stack:
aload 0
iconst_3
putfield sun.io.ByteToCharGB18030.badInputLength:I
69: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
70: StackMap locals:
StackMap stack:
aload 1
iload 8
iinc 8 1
baload
sipush 255
iand
istore 12
71: iload 12
bipush 48
if_icmplt 72
iload 12
bipush 57
if_icmple 79
72: StackMap locals:
StackMap stack:
aload 0
iconst_4
putfield sun.io.ByteToCharGB18030.badInputLength:I
73: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
74: StackMap locals:
StackMap stack:
iload 10
bipush 127
if_icmpeq 76
iload 10
sipush 255
if_icmpeq 76
75: iload 10
bipush 64
if_icmpge 78
76: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield sun.io.ByteToCharGB18030.badInputLength:I
77: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
78: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield sun.io.ByteToCharGB18030.currentState:I
79: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharGB18030.currentState:I
tableswitch { // 1 - 3
1: 80
2: 82
3: 84
default: 125
}
80: StackMap locals:
StackMap stack:
aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
iload 9
i2c
castore
81: goto 125
82: StackMap locals:
StackMap stack:
aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
aload 0
iload 9
iload 10
invokespecial sun.io.ByteToCharGB18030DB.getUnicode:(II)C
castore
83: goto 125
84: StackMap locals:
StackMap stack:
iload 9
sipush 129
isub
bipush 10
imul
85: iload 10
bipush 48
isub
86: iadd
87: bipush 126
88: imul
89: iload 11
90: iadd
91: sipush 129
92: isub
93: bipush 10
94: imul
95: iload 12
96: iadd
97: bipush 48
98: isub
istore 13
start local 13 99: iload 13
sipush 19042
if_icmpgt 101
100: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
aload 0
iload 13
invokevirtual sun.io.ByteToCharGB18030.getChar:(I)C
castore
goto 125
101: StackMap locals: int
StackMap stack:
iload 13
sipush 19042
if_icmple 103
iload 13
ldc 33468
if_icmpgt 103
102: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
iload 13
sipush 21827
iadd
i2c
castore
goto 125
103: StackMap locals:
StackMap stack:
iload 13
ldc 33469
if_icmplt 105
iload 13
ldc 33549
if_icmpgt 105
104: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
aload 0
iload 13
invokevirtual sun.io.ByteToCharGB18030.getChar:(I)C
castore
goto 125
105: StackMap locals:
StackMap stack:
iload 13
ldc 33549
if_icmplt 107
iload 13
ldc 37800
if_icmpgt 107
106: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
iload 13
sipush 25943
iadd
i2c
castore
goto 125
107: StackMap locals:
StackMap stack:
iload 13
ldc 37801
if_icmplt 109
iload 13
ldc 39419
if_icmpgt 109
108: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
aload 0
iload 13
invokevirtual sun.io.ByteToCharGB18030.getChar:(I)C
castore
goto 125
109: StackMap locals:
StackMap stack:
iload 13
ldc 189000
if_icmplt 123
iload 13
ldc 1237576
if_icmpge 123
110: iload 13
ldc 1237576
if_icmplt 115
111: aload 0
getfield sun.io.ByteToCharGB18030.subMode:Z
ifeq 113
112: aload 0
getfield sun.io.ByteToCharGB18030.subChars:[C
iconst_0
caload
ireturn
113: StackMap locals:
StackMap stack:
aload 0
iconst_4
putfield sun.io.ByteToCharGB18030.badInputLength:I
114: new sun.io.UnknownCharacterException
dup
invokespecial sun.io.UnknownCharacterException.<init>:()V
athrow
115: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharGB18030.charOff:I
iconst_2
iadd
iload 6
if_icmple 117
116: new sun.io.ConversionBufferFullException
dup
invokespecial sun.io.ConversionBufferFullException.<init>:()V
athrow
117: StackMap locals:
StackMap stack:
iload 13
ldc 123464
isub
istore 13
118: iload 13
ldc 65536
isub
sipush 1024
idiv
ldc 55296
iadd
i2c
istore 14
start local 14 119: iload 13
ldc 65536
isub
sipush 1024
irem
ldc 56320
iadd
i2c
istore 15
start local 15 120: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
iload 14
castore
121: aload 4
aload 0
dup
getfield sun.io.ByteToCharGB18030.charOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharGB18030.charOff:I
iload 15
castore
end local 15 end local 14 122: goto 125
123: StackMap locals:
StackMap stack:
aload 0
iconst_4
putfield sun.io.ByteToCharGB18030.badInputLength:I
124: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
end local 13 125: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.io.ByteToCharGB18030.byteOff:I
126: iload 7
iadd
putfield sun.io.ByteToCharGB18030.byteOff:I
end local 12 end local 11 end local 10 end local 9 127: StackMap locals: sun.io.ByteToCharGB18030 byte[] int int char[] int int int int
StackMap stack:
iload 8
iload 3
if_icmplt 26
128: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.io.ByteToCharGB18030.byteOff:I
aload 0
getfield sun.io.ByteToCharGB18030.savedSize:I
iadd
putfield sun.io.ByteToCharGB18030.byteOff:I
129: aload 0
getfield sun.io.ByteToCharGB18030.charOff:I
iload 5
isub
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 130 0 this Lsun/io/ByteToCharGB18030;
0 130 1 input [B
0 130 2 inOff I
0 130 3 inEnd I
0 130 4 output [C
0 130 5 outOff I
0 130 6 outEnd I
1 130 7 inputSize I
2 130 8 readOff I
12 23 9 newBuf [B
13 17 10 i I
27 127 9 byte1 I
28 127 10 byte2 I
29 127 11 byte3 I
30 127 12 byte4 I
99 125 13 offset I
119 122 14 highSurr C
120 122 15 lowSurr C
Exceptions:
throws sun.io.UnknownCharacterException, sun.io.MalformedInputException, sun.io.ConversionBufferFullException
MethodParameters:
Name Flags
input
inOff
inEnd
output
outOff
outEnd
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
iconst_0
dup_x1
putfield sun.io.ByteToCharGB18030.charOff:I
putfield sun.io.ByteToCharGB18030.byteOff:I
1: aload 0
iconst_2
putfield sun.io.ByteToCharGB18030.currentState:I
2: aload 0
iconst_0
putfield sun.io.ByteToCharGB18030.savedSize:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/io/ByteToCharGB18030;
public java.lang.String getCharacterEncoding();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "GB18030"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/ByteToCharGB18030;
private char getChar(int);
descriptor: (I)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: iload 1
bipush 8
ishr
sipush 255
iand
istore 2
start local 2 1: iload 1
sipush 255
iand
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: sipush 255
istore 5
start local 5 4: iload 2
iflt 6
iload 2
aload 0
invokevirtual sun.io.ByteToCharGB18030.getOuter:()[S
arraylength
if_icmpgt 6
5: iload 3
iload 4
if_icmplt 6
iload 3
iload 5
if_icmple 10
6: StackMap locals: sun.io.ByteToCharGB18030 int int int int int
StackMap stack:
aload 0
getfield sun.io.ByteToCharGB18030.subMode:Z
ifeq 8
7: aload 0
getfield sun.io.ByteToCharGB18030.subChars:[C
iconst_0
caload
ireturn
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.io.ByteToCharGB18030.badInputLength:I
9: new sun.io.UnknownCharacterException
dup
invokespecial sun.io.UnknownCharacterException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
getstatic sun.io.ByteToCharGB18030.decoderIndex1:[S
iload 2
saload
bipush 15
iand
iload 5
iload 4
isub
iconst_1
iadd
imul
iload 3
iload 4
isub
iadd
istore 6
start local 6 11: getstatic sun.io.ByteToCharGB18030.decoderIndex2:[Ljava/lang/String;
getstatic sun.io.ByteToCharGB18030.decoderIndex1:[S
iload 2
saload
iconst_4
ishr
aaload
iload 6
invokevirtual java.lang.String.charAt:(I)C
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/io/ByteToCharGB18030;
0 12 1 offset I
1 12 2 byte1 I
2 12 3 byte2 I
3 12 4 start I
4 12 5 end I
11 12 6 n I
Exceptions:
throws sun.io.UnknownCharacterException
MethodParameters:
Name Flags
offset
}
SourceFile: "ByteToCharGB18030.java"