public class sun.io.ByteToCharUnicode extends sun.io.ByteToCharConverter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.io.ByteToCharUnicode
super_class: sun.io.ByteToCharConverter
{
static final char BYTE_ORDER_MARK;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65279
static final char REVERSED_MARK;
descriptor: C
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65534
static final int AUTO;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int BIG;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int LITTLE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
int originalByteOrder;
descriptor: I
flags: (0x0000)
int byteOrder;
descriptor: I
flags: (0x0000)
boolean usesMark;
descriptor: Z
flags: (0x0000)
boolean started;
descriptor: Z
flags: (0x0000)
int leftOverByte;
descriptor: I
flags: (0x0000)
boolean leftOver;
descriptor: Z
flags: (0x0000)
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial sun.io.ByteToCharConverter.<init>:()V
1: aload 0
iconst_0
putfield sun.io.ByteToCharUnicode.started:Z
2: aload 0
iconst_0
putfield sun.io.ByteToCharUnicode.leftOver:Z
3: aload 0
aload 0
iconst_0
dup_x1
putfield sun.io.ByteToCharUnicode.byteOrder:I
putfield sun.io.ByteToCharUnicode.originalByteOrder:I
4: aload 0
iconst_1
putfield sun.io.ByteToCharUnicode.usesMark:Z
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/io/ByteToCharUnicode;
protected void <init>(int, boolean);
descriptor: (IZ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial sun.io.ByteToCharConverter.<init>:()V
1: aload 0
iconst_0
putfield sun.io.ByteToCharUnicode.started:Z
2: aload 0
iconst_0
putfield sun.io.ByteToCharUnicode.leftOver:Z
3: aload 0
aload 0
iload 1
dup_x1
putfield sun.io.ByteToCharUnicode.byteOrder:I
putfield sun.io.ByteToCharUnicode.originalByteOrder:I
4: aload 0
iload 2
putfield sun.io.ByteToCharUnicode.usesMark:Z
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/io/ByteToCharUnicode;
0 6 1 bo I
0 6 2 m Z
MethodParameters:
Name Flags
bo
m
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: aload 0
getfield sun.io.ByteToCharUnicode.originalByteOrder:I
tableswitch { // 1 - 2
1: 1
2: 4
default: 7
}
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharUnicode.usesMark:Z
ifeq 2
ldc "UnicodeBig"
goto 3
StackMap locals:
StackMap stack:
2: ldc "UnicodeBigUnmarked"
StackMap locals:
StackMap stack: java.lang.String
3: areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharUnicode.usesMark:Z
ifeq 5
ldc "UnicodeLittle"
goto 6
StackMap locals:
StackMap stack:
5: ldc "UnicodeLittleUnmarked"
StackMap locals:
StackMap stack: java.lang.String
6: areturn
7: StackMap locals:
StackMap stack:
ldc "Unicode"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/io/ByteToCharUnicode;
public int convert(byte[], int, int, char[], int, int);
descriptor: ([BII[CII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=14, 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: aload 0
iload 2
putfield sun.io.ByteToCharUnicode.byteOff:I
1: aload 0
iload 5
putfield sun.io.ByteToCharUnicode.charOff:I
2: iload 2
iload 3
if_icmplt 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 5: iload 2
istore 10
start local 10 6: iload 5
istore 11
start local 11 7: aload 0
getfield sun.io.ByteToCharUnicode.leftOver:Z
ifeq 11
8: aload 0
getfield sun.io.ByteToCharUnicode.leftOverByte:I
sipush 255
iand
istore 7
start local 7 9: aload 0
iconst_0
putfield sun.io.ByteToCharUnicode.leftOver:Z
10: goto 12
end local 7 11: StackMap locals: sun.io.ByteToCharUnicode byte[] int int char[] int int top top int int int
StackMap stack:
aload 1
iload 10
iinc 10 1
baload
sipush 255
iand
istore 7
start local 7 12: StackMap locals: sun.io.ByteToCharUnicode byte[] int int char[] int int int top int int int
StackMap stack:
iconst_1
istore 9
13: aload 0
getfield sun.io.ByteToCharUnicode.usesMark:Z
ifeq 64
aload 0
getfield sun.io.ByteToCharUnicode.started:Z
ifne 64
14: iload 10
iload 3
if_icmpge 64
15: aload 1
iload 10
iinc 10 1
baload
sipush 255
iand
istore 8
start local 8 16: iconst_2
istore 9
17: iload 7
bipush 8
ishl
iload 8
ior
i2c
istore 12
start local 12 18: iconst_0
istore 13
start local 13 19: iload 12
ldc 65279
if_icmpne 21
20: iconst_1
istore 13
goto 23
21: StackMap locals: sun.io.ByteToCharUnicode byte[] int int char[] int int int int int int int int int
StackMap stack:
iload 12
ldc 65534
if_icmpne 23
22: iconst_2
istore 13
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharUnicode.byteOrder:I
ifne 33
24: iload 13
ifne 28
25: aload 0
iload 9
putfield sun.io.ByteToCharUnicode.badInputLength:I
26: new sun.io.MalformedInputException
dup
ldc "Missing byte-order mark"
27: invokespecial sun.io.MalformedInputException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 0
iload 13
putfield sun.io.ByteToCharUnicode.byteOrder:I
29: iload 10
iload 3
if_icmpge 45
30: aload 1
iload 10
iinc 10 1
baload
sipush 255
iand
istore 7
31: iconst_1
istore 9
32: goto 45
33: StackMap locals:
StackMap stack:
iload 13
ifne 37
34: iinc 10 -1
35: iconst_1
istore 9
36: goto 45
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.io.ByteToCharUnicode.byteOrder:I
iload 13
if_icmpne 42
38: iload 10
iload 3
if_icmpge 45
39: aload 1
iload 10
iinc 10 1
baload
sipush 255
iand
istore 7
40: iconst_1
istore 9
41: goto 45
42: StackMap locals:
StackMap stack:
aload 0
iload 9
putfield sun.io.ByteToCharUnicode.badInputLength:I
43: new sun.io.MalformedInputException
dup
ldc "Incorrect byte-order mark"
44: invokespecial sun.io.MalformedInputException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.io.ByteToCharUnicode.started:Z
end local 13 end local 12 end local 8 46: goto 64
47: StackMap locals: sun.io.ByteToCharUnicode byte[] int int char[] int int int top int int int
StackMap stack:
aload 1
iload 10
iinc 10 1
baload
sipush 255
iand
istore 8
start local 8 48: iconst_2
istore 9
49: aload 0
getfield sun.io.ByteToCharUnicode.byteOrder:I
iconst_1
if_icmpne 52
50: iload 7
bipush 8
ishl
iload 8
ior
i2c
istore 12
start local 12 51: goto 53
end local 12 52: StackMap locals: sun.io.ByteToCharUnicode byte[] int int char[] int int int int int int int
StackMap stack:
iload 8
bipush 8
ishl
iload 7
ior
i2c
istore 12
start local 12 53: StackMap locals: int
StackMap stack:
iload 12
ldc 65534
if_icmpne 56
54: new sun.io.MalformedInputException
dup
ldc "Reversed byte-order mark"
55: invokespecial sun.io.MalformedInputException.<init>:(Ljava/lang/String;)V
athrow
56: StackMap locals:
StackMap stack:
iload 11
iload 6
if_icmplt 58
57: new sun.io.ConversionBufferFullException
dup
invokespecial sun.io.ConversionBufferFullException.<init>:()V
athrow
58: StackMap locals:
StackMap stack:
aload 4
iload 11
iinc 11 1
iload 12
castore
59: aload 0
iload 10
putfield sun.io.ByteToCharUnicode.byteOff:I
60: aload 0
iload 11
putfield sun.io.ByteToCharUnicode.charOff:I
61: iload 10
iload 3
if_icmpge 64
62: aload 1
iload 10
iinc 10 1
baload
sipush 255
iand
istore 7
63: iconst_1
istore 9
end local 12 end local 8 64: StackMap locals: sun.io.ByteToCharUnicode byte[] int int char[] int int int top int int int
StackMap stack:
iload 10
iload 3
if_icmplt 47
65: iload 9
iconst_1
if_icmpne 69
66: aload 0
iload 7
putfield sun.io.ByteToCharUnicode.leftOverByte:I
67: aload 0
iload 10
putfield sun.io.ByteToCharUnicode.byteOff:I
68: aload 0
iconst_1
putfield sun.io.ByteToCharUnicode.leftOver:Z
69: StackMap locals:
StackMap stack:
iload 11
iload 5
isub
ireturn
end local 11 end local 10 end local 9 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 70 0 this Lsun/io/ByteToCharUnicode;
0 70 1 in [B
0 70 2 inOff I
0 70 3 inEnd I
0 70 4 out [C
0 70 5 outOff I
0 70 6 outEnd I
9 11 7 b1 I
12 70 7 b1 I
16 46 8 b2 I
48 64 8 b2 I
5 70 9 bc I
6 70 10 inI I
7 70 11 outI I
18 46 12 c C
19 46 13 bo I
51 52 12 c C
53 64 12 c C
Exceptions:
throws sun.io.ConversionBufferFullException, sun.io.MalformedInputException
MethodParameters:
Name Flags
in
inOff
inEnd
out
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
iconst_0
putfield sun.io.ByteToCharUnicode.leftOver:Z
1: aload 0
aload 0
iconst_0
dup_x1
putfield sun.io.ByteToCharUnicode.charOff:I
putfield sun.io.ByteToCharUnicode.byteOff:I
2: aload 0
iconst_0
putfield sun.io.ByteToCharUnicode.started:Z
3: aload 0
aload 0
getfield sun.io.ByteToCharUnicode.originalByteOrder:I
putfield sun.io.ByteToCharUnicode.byteOrder:I
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/io/ByteToCharUnicode;
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.ByteToCharUnicode.leftOver:Z
ifeq 3
1: aload 0
invokevirtual sun.io.ByteToCharUnicode.reset:()V
2: new sun.io.MalformedInputException
dup
invokespecial sun.io.MalformedInputException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 0
iconst_0
dup_x1
putfield sun.io.ByteToCharUnicode.charOff:I
putfield sun.io.ByteToCharUnicode.byteOff:I
4: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/io/ByteToCharUnicode;
0 5 1 buf [C
0 5 2 off I
0 5 3 len I
Exceptions:
throws sun.io.MalformedInputException
MethodParameters:
Name Flags
buf
off
len
}
SourceFile: "ByteToCharUnicode.java"