public class sun.io.CharToByteUTF8 extends sun.io.CharToByteConverter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.io.CharToByteUTF8
super_class: sun.io.CharToByteConverter
{
private char highHalfZoneCode;
descriptor: C
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.io.CharToByteUTF8 this
0: .line 43
aload 0 /* this */
invokespecial sun.io.CharToByteConverter.<init>:()V
return
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/CharToByteUTF8;
public int flush(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // sun.io.CharToByteUTF8 this
start local 1 // byte[] output
start local 2 // int outStart
start local 3 // int outEnd
0: .line 50
aload 0 /* this */
getfield sun.io.CharToByteUTF8.highHalfZoneCode:C
ifeq 4
1: .line 51
aload 0 /* this */
iconst_0
putfield sun.io.CharToByteUTF8.highHalfZoneCode:C
2: .line 52
aload 0 /* this */
iconst_0
putfield sun.io.CharToByteUTF8.badInputLength:I
3: .line 53
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
4: .line 55
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield sun.io.CharToByteUTF8.charOff:I
putfield sun.io.CharToByteUTF8.byteOff:I
5: .line 56
iconst_0
ireturn
end local 3 // int outEnd
end local 2 // int outStart
end local 1 // byte[] output
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/io/CharToByteUTF8;
0 6 1 output [B
0 6 2 outStart I
0 6 3 outEnd I
Exceptions:
throws sun.io.MalformedInputException
MethodParameters:
Name Flags
output
outStart
outEnd
public int convert(char[], int, int, byte[], int, int);
descriptor: ([CII[BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=7
start local 0 // sun.io.CharToByteUTF8 this
start local 1 // char[] input
start local 2 // int inOff
start local 3 // int inEnd
start local 4 // byte[] output
start local 5 // int outOff
start local 6 // int outEnd
0: .line 67
bipush 6
newarray 8
astore 8 /* outputByte */
start local 8 // byte[] outputByte
1: .line 71
aload 0 /* this */
iload 2 /* inOff */
putfield sun.io.CharToByteUTF8.charOff:I
2: .line 72
aload 0 /* this */
iload 5 /* outOff */
putfield sun.io.CharToByteUTF8.byteOff:I
3: .line 74
aload 0 /* this */
getfield sun.io.CharToByteUTF8.highHalfZoneCode:C
ifeq 64
4: .line 75
aload 0 /* this */
getfield sun.io.CharToByteUTF8.highHalfZoneCode:C
istore 7 /* inputChar */
start local 7 // char inputChar
5: .line 76
aload 0 /* this */
iconst_0
putfield sun.io.CharToByteUTF8.highHalfZoneCode:C
6: .line 77
aload 1 /* input */
iload 2 /* inOff */
caload
ldc 56320
if_icmplt 19
aload 1 /* input */
iload 2 /* inOff */
caload
ldc 57343
if_icmpgt 19
7: .line 79
aload 0 /* this */
getfield sun.io.CharToByteUTF8.highHalfZoneCode:C
ldc 55296
isub
sipush 1024
imul
8: .line 80
aload 1 /* input */
iload 2 /* inOff */
caload
ldc 56320
isub
9: .line 79
iadd
10: .line 80
ldc 65536
11: .line 79
iadd
istore 11 /* ucs4 */
start local 11 // int ucs4
12: .line 81
aload 4 /* output */
iconst_0
sipush 240
iload 11 /* ucs4 */
bipush 18
ishr
bipush 7
iand
ior
i2b
bastore
13: .line 82
aload 4 /* output */
iconst_1
sipush 128
iload 11 /* ucs4 */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
14: .line 83
aload 4 /* output */
iconst_2
sipush 128
iload 11 /* ucs4 */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
15: .line 84
aload 4 /* output */
iconst_3
sipush 128
iload 11 /* ucs4 */
bipush 63
iand
ior
i2b
bastore
16: .line 85
aload 0 /* this */
dup
getfield sun.io.CharToByteUTF8.charOff:I
iconst_1
iadd
putfield sun.io.CharToByteUTF8.charOff:I
17: .line 86
aload 0 /* this */
iconst_0
putfield sun.io.CharToByteUTF8.highHalfZoneCode:C
end local 11 // int ucs4
18: .line 87
goto 64
19: .line 89
StackMap locals: int byte[]
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.io.CharToByteUTF8.badInputLength:I
20: .line 90
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
end local 7 // char inputChar
21: .line 95
StackMap locals: sun.io.CharToByteUTF8 char[] int int byte[] int int top byte[]
StackMap stack:
aload 1 /* input */
aload 0 /* this */
getfield sun.io.CharToByteUTF8.charOff:I
caload
istore 7 /* inputChar */
start local 7 // char inputChar
22: .line 96
iload 7 /* inputChar */
sipush 128
if_icmpge 27
23: .line 97
aload 8 /* outputByte */
iconst_0
iload 7 /* inputChar */
i2b
bastore
24: .line 98
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
25: .line 99
iconst_1
istore 10 /* outputSize */
start local 10 // int outputSize
26: .line 100
goto 56
end local 10 // int outputSize
end local 9 // int inputSize
StackMap locals: sun.io.CharToByteUTF8 char[] int int byte[] int int int byte[]
StackMap stack:
27: iload 7 /* inputChar */
sipush 2048
if_icmpge 33
28: .line 101
aload 8 /* outputByte */
iconst_0
sipush 192
iload 7 /* inputChar */
bipush 6
ishr
bipush 31
iand
ior
i2b
bastore
29: .line 102
aload 8 /* outputByte */
iconst_1
sipush 128
iload 7 /* inputChar */
bipush 63
iand
ior
i2b
bastore
30: .line 103
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
31: .line 104
iconst_2
istore 10 /* outputSize */
start local 10 // int outputSize
32: .line 105
goto 56
end local 10 // int outputSize
end local 9 // int inputSize
StackMap locals:
StackMap stack:
33: iload 7 /* inputChar */
ldc 55296
if_icmplt 51
iload 7 /* inputChar */
ldc 56319
if_icmpgt 51
34: .line 107
aload 0 /* this */
getfield sun.io.CharToByteUTF8.charOff:I
iconst_1
iadd
iload 3 /* inEnd */
if_icmplt 37
35: .line 108
aload 0 /* this */
iload 7 /* inputChar */
putfield sun.io.CharToByteUTF8.highHalfZoneCode:C
36: .line 109
goto 65
37: .line 112
StackMap locals:
StackMap stack:
aload 1 /* input */
aload 0 /* this */
getfield sun.io.CharToByteUTF8.charOff:I
iconst_1
iadd
caload
istore 11 /* lowChar */
start local 11 // char lowChar
38: .line 113
iload 11 /* lowChar */
ldc 56320
if_icmplt 39
iload 11 /* lowChar */
ldc 57343
if_icmple 41
39: .line 114
StackMap locals: sun.io.CharToByteUTF8 char[] int int byte[] int int int byte[] top top int
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.io.CharToByteUTF8.badInputLength:I
40: .line 115
new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
41: .line 117
StackMap locals:
StackMap stack:
iload 7 /* inputChar */
ldc 55296
isub
sipush 1024
imul
iload 11 /* lowChar */
ldc 56320
isub
iadd
42: .line 118
ldc 65536
43: .line 117
iadd
istore 12 /* ucs4 */
start local 12 // int ucs4
44: .line 119
aload 8 /* outputByte */
iconst_0
sipush 240
iload 12 /* ucs4 */
bipush 18
ishr
bipush 7
iand
ior
i2b
bastore
45: .line 120
aload 8 /* outputByte */
iconst_1
sipush 128
iload 12 /* ucs4 */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
46: .line 121
aload 8 /* outputByte */
iconst_2
sipush 128
iload 12 /* ucs4 */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
47: .line 122
aload 8 /* outputByte */
iconst_3
sipush 128
iload 12 /* ucs4 */
bipush 63
iand
ior
i2b
bastore
48: .line 123
iconst_4
istore 10 /* outputSize */
start local 10 // int outputSize
49: .line 124
iconst_2
istore 9 /* inputSize */
end local 12 // int ucs4
end local 11 // char lowChar
start local 9 // int inputSize
50: .line 125
goto 56
end local 10 // int outputSize
end local 9 // int inputSize
51: .line 126
StackMap locals: sun.io.CharToByteUTF8 char[] int int byte[] int int int byte[]
StackMap stack:
aload 8 /* outputByte */
iconst_0
sipush 224
iload 7 /* inputChar */
bipush 12
ishr
bipush 15
iand
ior
i2b
bastore
52: .line 127
aload 8 /* outputByte */
iconst_1
sipush 128
iload 7 /* inputChar */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
53: .line 128
aload 8 /* outputByte */
iconst_2
sipush 128
iload 7 /* inputChar */
bipush 63
iand
ior
i2b
bastore
54: .line 129
iconst_1
istore 9 /* inputSize */
start local 9 // int inputSize
55: .line 130
iconst_3
istore 10 /* outputSize */
start local 10 // int outputSize
56: .line 132
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.io.CharToByteUTF8.byteOff:I
iload 10 /* outputSize */
iadd
iload 6 /* outEnd */
if_icmple 58
57: .line 133
new sun.io.ConversionBufferFullException
dup
invokespecial sun.io.ConversionBufferFullException.<init>:()V
athrow
58: .line 135
StackMap locals:
StackMap stack:
iconst_0
istore 11 /* i */
start local 11 // int i
59: goto 62
60: .line 136
StackMap locals: int
StackMap stack:
aload 4 /* output */
aload 0 /* this */
dup
getfield sun.io.CharToByteUTF8.byteOff:I
dup_x1
iconst_1
iadd
putfield sun.io.CharToByteUTF8.byteOff:I
aload 8 /* outputByte */
iload 11 /* i */
baload
bastore
61: .line 135
iinc 11 /* i */ 1
StackMap locals:
StackMap stack:
62: iload 11 /* i */
iload 10 /* outputSize */
if_icmplt 60
end local 11 // int i
63: .line 138
aload 0 /* this */
dup
getfield sun.io.CharToByteUTF8.charOff:I
iload 9 /* inputSize */
iadd
putfield sun.io.CharToByteUTF8.charOff:I
end local 10 // int outputSize
end local 9 // int inputSize
end local 7 // char inputChar
64: .line 94
StackMap locals: sun.io.CharToByteUTF8 char[] int int byte[] int int top byte[]
StackMap stack:
aload 0 /* this */
getfield sun.io.CharToByteUTF8.charOff:I
iload 3 /* inEnd */
if_icmplt 21
65: .line 140
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.io.CharToByteUTF8.byteOff:I
iload 5 /* outOff */
isub
ireturn
end local 8 // byte[] outputByte
end local 6 // int outEnd
end local 5 // int outOff
end local 4 // byte[] output
end local 3 // int inEnd
end local 2 // int inOff
end local 1 // char[] input
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lsun/io/CharToByteUTF8;
0 66 1 input [C
0 66 2 inOff I
0 66 3 inEnd I
0 66 4 output [B
0 66 5 outOff I
0 66 6 outEnd I
5 21 7 inputChar C
22 64 7 inputChar C
1 66 8 outputByte [B
25 27 9 inputSize I
31 33 9 inputSize I
50 51 9 inputSize I
55 64 9 inputSize I
26 27 10 outputSize I
32 33 10 outputSize I
49 51 10 outputSize I
56 64 10 outputSize I
12 18 11 ucs4 I
38 50 11 lowChar C
44 50 12 ucs4 I
59 63 11 i I
Exceptions:
throws sun.io.ConversionBufferFullException, sun.io.MalformedInputException
MethodParameters:
Name Flags
input
inOff
inEnd
output
outOff
outEnd
public boolean canConvert(char);
descriptor: (C)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 // sun.io.CharToByteUTF8 this
start local 1 // char ch
0: .line 144
iconst_1
ireturn
end local 1 // char ch
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/CharToByteUTF8;
0 1 1 ch C
MethodParameters:
Name Flags
ch
public int getMaxBytesPerChar();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.io.CharToByteUTF8 this
0: .line 148
iconst_3
ireturn
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/CharToByteUTF8;
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // sun.io.CharToByteUTF8 this
0: .line 152
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield sun.io.CharToByteUTF8.charOff:I
putfield sun.io.CharToByteUTF8.byteOff:I
1: .line 153
aload 0 /* this */
iconst_0
putfield sun.io.CharToByteUTF8.highHalfZoneCode:C
2: .line 154
return
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/io/CharToByteUTF8;
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.CharToByteUTF8 this
0: .line 157
ldc "UTF8"
areturn
end local 0 // sun.io.CharToByteUTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/io/CharToByteUTF8;
}
SourceFile: "CharToByteUTF8.java"