public class sun.io.ByteToCharUTF8 extends sun.io.ByteToCharConverter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.io.ByteToCharUTF8
super_class: sun.io.ByteToCharConverter
{
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=1, args_size=1
start local 0 // sun.io.ByteToCharUTF8 this
0: .line 40
aload 0 /* this */
invokespecial sun.io.ByteToCharConverter.<init>:()V
1: .line 41
aload 0 /* this */
iconst_0
putfield sun.io.ByteToCharUTF8.savedSize:I
2: .line 42
aload 0 /* this */
iconst_5
newarray 8
putfield sun.io.ByteToCharUTF8.savedBytes:[B
3: .line 43
return
end local 0 // sun.io.ByteToCharUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/io/ByteToCharUTF8;
public int flush(char[], int, int);
descriptor: ([CII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // sun.io.ByteToCharUTF8 this
start local 1 // char[] output
start local 2 // int outStart
start local 3 // int outEnd
0: .line 48
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedSize:I
ifeq 4
1: .line 49
aload 0 /* this */
iconst_0
putfield sun.io.ByteToCharUTF8.savedSize:I
2: .line 50
aload 0 /* this */
iconst_0
putfield sun.io.ByteToCharUTF8.badInputLength:I
3: .line 51
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
4: .line 53
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield sun.io.ByteToCharUTF8.charOff:I
putfield sun.io.ByteToCharUTF8.byteOff:I
5: .line 54
iconst_0
ireturn
end local 3 // int outEnd
end local 2 // int outStart
end local 1 // char[] output
end local 0 // sun.io.ByteToCharUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/io/ByteToCharUTF8;
0 6 1 output [C
0 6 2 outStart I
0 6 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=7, locals=16, args_size=7
start local 0 // sun.io.ByteToCharUTF8 this
start local 1 // byte[] input
start local 2 // int inOff
start local 3 // int inEnd
start local 4 // char[] output
start local 5 // int outOff
start local 6 // int outEnd
0: .line 65
iconst_2
newarray 5
astore 11 /* outputChar */
start local 11 // char[] outputChar
1: .line 67
iconst_0
istore 13 /* byteOffAdjustment */
start local 13 // int byteOffAdjustment
2: .line 69
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedSize:I
ifeq 15
3: .line 71
iload 3 /* inEnd */
iload 2 /* inOff */
isub
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedSize:I
iadd
newarray 8
astore 14 /* newBuf */
start local 14 // byte[] newBuf
4: .line 72
iconst_0
istore 15 /* i */
start local 15 // int i
5: goto 8
6: .line 73
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int top top top top char[] top int byte[] int
StackMap stack:
aload 14 /* newBuf */
iload 15 /* i */
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iload 15 /* i */
baload
bastore
7: .line 72
iinc 15 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 15 /* i */
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedSize:I
if_icmplt 6
end local 15 // int i
9: .line 75
aload 1 /* input */
iload 2 /* inOff */
aload 14 /* newBuf */
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedSize:I
iload 3 /* inEnd */
iload 2 /* inOff */
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: .line 76
aload 14 /* newBuf */
astore 1 /* input */
11: .line 77
iconst_0
istore 2 /* inOff */
12: .line 78
aload 14 /* newBuf */
arraylength
istore 3 /* inEnd */
13: .line 79
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedSize:I
ineg
istore 13 /* byteOffAdjustment */
14: .line 80
aload 0 /* this */
iconst_0
putfield sun.io.ByteToCharUTF8.savedSize:I
end local 14 // byte[] newBuf
15: .line 83
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 5 /* outOff */
putfield sun.io.ByteToCharUTF8.charOff:I
16: .line 84
aload 0 /* this */
iload 2 /* inOff */
putfield sun.io.ByteToCharUTF8.byteOff:I
17: .line 87
goto 105
18: .line 89
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
istore 14 /* startByteOff */
start local 14 // int startByteOff
19: .line 90
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 7 /* byte1 */
start local 7 // int byte1
20: .line 92
iload 7 /* byte1 */
sipush 128
iand
ifne 24
21: .line 93
aload 11 /* outputChar */
iconst_0
iload 7 /* byte1 */
i2c
castore
22: .line 94
iconst_1
istore 12 /* outputSize */
start local 12 // int outputSize
23: .line 95
goto 95
end local 12 // int outputSize
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int top top top char[] top int int
StackMap stack:
24: iload 7 /* byte1 */
sipush 224
iand
sipush 192
if_icmpne 37
25: .line 96
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 3 /* inEnd */
if_icmplt 29
26: .line 97
aload 0 /* this */
iconst_1
putfield sun.io.ByteToCharUTF8.savedSize:I
27: .line 98
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_0
iload 7 /* byte1 */
i2b
bastore
28: .line 99
goto 106
29: .line 101
StackMap locals:
StackMap stack:
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 8 /* byte2 */
start local 8 // int byte2
30: .line 102
iload 8 /* byte2 */
sipush 192
iand
sipush 128
if_icmpeq 34
31: .line 103
aload 0 /* this */
iconst_2
putfield sun.io.ByteToCharUTF8.badInputLength:I
32: .line 104
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 13 /* byteOffAdjustment */
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
33: .line 105
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
34: .line 107
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int int top top char[] top int int
StackMap stack:
aload 11 /* outputChar */
iconst_0
iload 7 /* byte1 */
bipush 31
iand
bipush 6
ishl
iload 8 /* byte2 */
bipush 63
iand
ior
i2c
castore
35: .line 108
iconst_1
istore 12 /* outputSize */
start local 12 // int outputSize
36: .line 109
goto 95
end local 12 // int outputSize
end local 8 // int byte2
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int top top top char[] top int int
StackMap stack:
37: iload 7 /* byte1 */
sipush 240
iand
sipush 224
if_icmpne 58
38: .line 110
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iconst_1
iadd
iload 3 /* inEnd */
if_icmplt 46
39: .line 111
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_0
iload 7 /* byte1 */
i2b
bastore
40: .line 112
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 3 /* inEnd */
if_icmplt 43
41: .line 113
aload 0 /* this */
iconst_1
putfield sun.io.ByteToCharUTF8.savedSize:I
42: .line 114
goto 106
43: .line 115
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_2
putfield sun.io.ByteToCharUTF8.savedSize:I
44: .line 116
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_1
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
bastore
45: .line 118
goto 106
46: .line 120
StackMap locals:
StackMap stack:
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 8 /* byte2 */
start local 8 // int byte2
47: .line 121
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 9 /* byte3 */
start local 9 // int byte3
48: .line 122
iload 8 /* byte2 */
sipush 192
iand
sipush 128
if_icmpne 49
iload 9 /* byte3 */
sipush 192
iand
sipush 128
if_icmpeq 52
49: .line 123
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int int int top char[] top int int
StackMap stack:
aload 0 /* this */
iconst_3
putfield sun.io.ByteToCharUTF8.badInputLength:I
50: .line 124
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 13 /* byteOffAdjustment */
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
51: .line 125
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
52: .line 127
StackMap locals:
StackMap stack:
aload 11 /* outputChar */
iconst_0
iload 7 /* byte1 */
bipush 15
iand
bipush 12
ishl
53: .line 128
iload 8 /* byte2 */
bipush 63
iand
bipush 6
ishl
ior
54: .line 129
iload 9 /* byte3 */
bipush 63
iand
ior
i2c
55: .line 127
castore
56: .line 130
iconst_1
istore 12 /* outputSize */
start local 12 // int outputSize
57: .line 131
goto 95
end local 12 // int outputSize
end local 9 // int byte3
end local 8 // int byte2
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int top top top char[] top int int
StackMap stack:
58: iload 7 /* byte1 */
sipush 248
iand
sipush 240
if_icmpne 92
59: .line 132
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iconst_2
iadd
iload 3 /* inEnd */
if_icmplt 72
60: .line 133
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_0
iload 7 /* byte1 */
i2b
bastore
61: .line 134
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 3 /* inEnd */
if_icmplt 64
62: .line 135
aload 0 /* this */
iconst_1
putfield sun.io.ByteToCharUTF8.savedSize:I
63: .line 136
goto 106
StackMap locals:
StackMap stack:
64: aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iconst_1
iadd
iload 3 /* inEnd */
if_icmplt 68
65: .line 137
aload 0 /* this */
iconst_2
putfield sun.io.ByteToCharUTF8.savedSize:I
66: .line 138
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_1
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
bastore
67: .line 139
goto 106
68: .line 140
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_3
putfield sun.io.ByteToCharUTF8.savedSize:I
69: .line 141
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_1
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
bastore
70: .line 142
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.savedBytes:[B
iconst_2
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
bastore
71: .line 144
goto 106
72: .line 146
StackMap locals:
StackMap stack:
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 8 /* byte2 */
start local 8 // int byte2
73: .line 147
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 9 /* byte3 */
start local 9 // int byte3
74: .line 148
aload 1 /* input */
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
baload
sipush 255
iand
istore 10 /* byte4 */
start local 10 // int byte4
75: .line 149
iload 8 /* byte2 */
sipush 192
iand
sipush 128
if_icmpne 78
76: .line 150
iload 9 /* byte3 */
sipush 192
iand
sipush 128
if_icmpne 78
77: .line 151
iload 10 /* byte4 */
sipush 192
iand
sipush 128
if_icmpeq 81
78: .line 152
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int int int int char[] top int int
StackMap stack:
aload 0 /* this */
iconst_4
putfield sun.io.ByteToCharUTF8.badInputLength:I
79: .line 153
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 13 /* byteOffAdjustment */
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
80: .line 154
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
81: .line 157
StackMap locals:
StackMap stack:
bipush 7
iload 7 /* byte1 */
iand
bipush 18
ishl
82: .line 158
bipush 63
iload 8 /* byte2 */
iand
bipush 12
ishl
83: .line 157
ior
84: .line 159
bipush 63
iload 9 /* byte3 */
iand
bipush 6
ishl
85: .line 157
ior
86: .line 160
bipush 63
iload 10 /* byte4 */
iand
87: .line 157
ior
istore 15 /* ucs4 */
start local 15 // int ucs4
88: .line 161
aload 11 /* outputChar */
iconst_0
iload 15 /* ucs4 */
ldc 65536
isub
sipush 1024
idiv
ldc 55296
iadd
i2c
castore
89: .line 162
aload 11 /* outputChar */
iconst_1
iload 15 /* ucs4 */
ldc 65536
isub
sipush 1024
irem
ldc 56320
iadd
i2c
castore
90: .line 163
iconst_2
istore 12 /* outputSize */
end local 15 // int ucs4
start local 12 // int outputSize
91: .line 164
goto 95
end local 12 // int outputSize
end local 10 // int byte4
end local 9 // int byte3
end local 8 // int byte2
92: .line 165
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int top top top char[] top int int
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.io.ByteToCharUTF8.badInputLength:I
93: .line 166
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 13 /* byteOffAdjustment */
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
94: .line 167
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
start local 12 // int outputSize
95: .line 170
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int int top top top char[] int int int
StackMap stack:
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.charOff:I
iload 12 /* outputSize */
iadd
iload 6 /* outEnd */
if_icmple 99
96: .line 171
aload 0 /* this */
iload 14 /* startByteOff */
putfield sun.io.ByteToCharUTF8.byteOff:I
97: .line 172
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 13 /* byteOffAdjustment */
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
98: .line 173
new sun.io.ConversionBufferFullException
dup
invokespecial sun.io.ConversionBufferFullException.<init>:()V
athrow
99: .line 176
StackMap locals:
StackMap stack:
iconst_0
istore 15 /* i */
start local 15 // int i
100: goto 103
101: .line 177
StackMap locals: int
StackMap stack:
aload 4 /* output */
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.charOff:I
iload 15 /* i */
iadd
aload 11 /* outputChar */
iload 15 /* i */
caload
castore
102: .line 176
iinc 15 /* i */ 1
StackMap locals:
StackMap stack:
103: iload 15 /* i */
iload 12 /* outputSize */
if_icmplt 101
end local 15 // int i
104: .line 179
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.charOff:I
iload 12 /* outputSize */
iadd
putfield sun.io.ByteToCharUTF8.charOff:I
end local 14 // int startByteOff
end local 12 // int outputSize
end local 7 // int byte1
105: .line 87
StackMap locals: sun.io.ByteToCharUTF8 byte[] int int char[] int int top top top top char[] top int
StackMap stack:
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 3 /* inEnd */
if_icmplt 18
106: .line 182
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
getfield sun.io.ByteToCharUTF8.byteOff:I
iload 13 /* byteOffAdjustment */
iadd
putfield sun.io.ByteToCharUTF8.byteOff:I
107: .line 183
aload 0 /* this */
getfield sun.io.ByteToCharUTF8.charOff:I
iload 5 /* outOff */
isub
ireturn
end local 13 // int byteOffAdjustment
end local 11 // char[] outputChar
end local 6 // int outEnd
end local 5 // int outOff
end local 4 // char[] output
end local 3 // int inEnd
end local 2 // int inOff
end local 1 // byte[] input
end local 0 // sun.io.ByteToCharUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 108 0 this Lsun/io/ByteToCharUTF8;
0 108 1 input [B
0 108 2 inOff I
0 108 3 inEnd I
0 108 4 output [C
0 108 5 outOff I
0 108 6 outEnd I
20 105 7 byte1 I
30 37 8 byte2 I
47 58 8 byte2 I
73 92 8 byte2 I
48 58 9 byte3 I
74 92 9 byte3 I
75 92 10 byte4 I
1 108 11 outputChar [C
23 24 12 outputSize I
36 37 12 outputSize I
57 58 12 outputSize I
91 92 12 outputSize I
95 105 12 outputSize I
2 108 13 byteOffAdjustment I
4 15 14 newBuf [B
5 9 15 i I
19 105 14 startByteOff I
88 91 15 ucs4 I
100 104 15 i I
Exceptions:
throws sun.io.MalformedInputException, sun.io.ConversionBufferFullException
MethodParameters:
Name Flags
input
inOff
inEnd
output
outOff
outEnd
public java.lang.String getCharacterEncoding();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.io.ByteToCharUTF8 this
0: .line 190
ldc "UTF8"
areturn
end local 0 // sun.io.ByteToCharUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/ByteToCharUTF8;
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // sun.io.ByteToCharUTF8 this
0: .line 197
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield sun.io.ByteToCharUTF8.charOff:I
putfield sun.io.ByteToCharUTF8.byteOff:I
1: .line 198
aload 0 /* this */
iconst_0
putfield sun.io.ByteToCharUTF8.savedSize:I
2: .line 199
return
end local 0 // sun.io.ByteToCharUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/io/ByteToCharUTF8;
}
SourceFile: "ByteToCharUTF8.java"