public class sun.misc.UCDecoder extends sun.misc.CharacterDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.UCDecoder
super_class: sun.misc.CharacterDecoder
{
private static final byte[] map_array;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private int sequence;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] tmp;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private sun.misc.CRC16 crc;
descriptor: Lsun/misc/CRC16;
flags: (0x0002) ACC_PRIVATE
private java.io.ByteArrayOutputStream lineAndSeq;
descriptor: Ljava/io/ByteArrayOutputStream;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 64
newarray 8
dup
iconst_0
1: bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 50
bastore
dup
iconst_3
bipush 51
bastore
dup
iconst_4
bipush 52
bastore
dup
iconst_5
bipush 53
bastore
dup
bipush 6
bipush 54
bastore
dup
bipush 7
bipush 55
bastore
dup
bipush 8
2: bipush 56
bastore
dup
bipush 9
bipush 57
bastore
dup
bipush 10
bipush 65
bastore
dup
bipush 11
bipush 66
bastore
dup
bipush 12
bipush 67
bastore
dup
bipush 13
bipush 68
bastore
dup
bipush 14
bipush 69
bastore
dup
bipush 15
bipush 70
bastore
dup
bipush 16
3: bipush 71
bastore
dup
bipush 17
bipush 72
bastore
dup
bipush 18
bipush 73
bastore
dup
bipush 19
bipush 74
bastore
dup
bipush 20
bipush 75
bastore
dup
bipush 21
bipush 76
bastore
dup
bipush 22
bipush 77
bastore
dup
bipush 23
bipush 78
bastore
dup
bipush 24
4: bipush 79
bastore
dup
bipush 25
bipush 80
bastore
dup
bipush 26
bipush 81
bastore
dup
bipush 27
bipush 82
bastore
dup
bipush 28
bipush 83
bastore
dup
bipush 29
bipush 84
bastore
dup
bipush 30
bipush 85
bastore
dup
bipush 31
bipush 86
bastore
dup
bipush 32
5: bipush 87
bastore
dup
bipush 33
bipush 88
bastore
dup
bipush 34
bipush 89
bastore
dup
bipush 35
bipush 90
bastore
dup
bipush 36
bipush 97
bastore
dup
bipush 37
bipush 98
bastore
dup
bipush 38
bipush 99
bastore
dup
bipush 39
bipush 100
bastore
dup
bipush 40
6: bipush 101
bastore
dup
bipush 41
bipush 102
bastore
dup
bipush 42
bipush 103
bastore
dup
bipush 43
bipush 104
bastore
dup
bipush 44
bipush 105
bastore
dup
bipush 45
bipush 106
bastore
dup
bipush 46
bipush 107
bastore
dup
bipush 47
bipush 108
bastore
dup
bipush 48
7: bipush 109
bastore
dup
bipush 49
bipush 110
bastore
dup
bipush 50
bipush 111
bastore
dup
bipush 51
bipush 112
bastore
dup
bipush 52
bipush 113
bastore
dup
bipush 53
bipush 114
bastore
dup
bipush 54
bipush 115
bastore
dup
bipush 55
bipush 116
bastore
dup
bipush 56
8: bipush 117
bastore
dup
bipush 57
bipush 118
bastore
dup
bipush 58
bipush 119
bastore
dup
bipush 59
bipush 120
bastore
dup
bipush 60
bipush 121
bastore
dup
bipush 61
bipush 122
bastore
dup
bipush 62
bipush 40
bastore
dup
bipush 63
bipush 41
bastore
9: putstatic sun.misc.UCDecoder.map_array:[B
10: return
LocalVariableTable:
Start End Slot Name Signature
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.misc.CharacterDecoder.<init>:()V
1: aload 0
iconst_2
newarray 8
putfield sun.misc.UCDecoder.tmp:[B
2: aload 0
new sun.misc.CRC16
dup
invokespecial sun.misc.CRC16.<init>:()V
putfield sun.misc.UCDecoder.crc:Lsun/misc/CRC16;
3: aload 0
new java.io.ByteArrayOutputStream
dup
iconst_2
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
putfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/misc/UCDecoder;
protected int bytesPerAtom();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_2
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/UCDecoder;
protected int bytesPerLine();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 48
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/UCDecoder;
protected void decodeAtom(java.io.PushbackInputStream, java.io.OutputStream, int);
descriptor: (Ljava/io/PushbackInputStream;Ljava/io/OutputStream;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_m1
istore 9
start local 9 1: iconst_m1
istore 10
start local 10 2: iconst_m1
istore 11
start local 11 3: iconst_3
newarray 8
astore 14
start local 14 4: aload 1
aload 14
invokevirtual java.io.PushbackInputStream.read:([B)I
istore 4
start local 4 5: iload 4
iconst_3
if_icmpeq 7
6: new sun.misc.CEStreamExhausted
dup
invokespecial sun.misc.CEStreamExhausted.<init>:()V
athrow
7: StackMap locals: sun.misc.UCDecoder java.io.PushbackInputStream java.io.OutputStream int int top top top top int int int top top byte[]
StackMap stack:
iconst_0
istore 4
goto 15
8: StackMap locals:
StackMap stack:
aload 14
iconst_0
baload
getstatic sun.misc.UCDecoder.map_array:[B
iload 4
baload
if_icmpne 10
9: iload 4
i2b
istore 9
10: StackMap locals:
StackMap stack:
aload 14
iconst_1
baload
getstatic sun.misc.UCDecoder.map_array:[B
iload 4
baload
if_icmpne 12
11: iload 4
i2b
istore 10
12: StackMap locals:
StackMap stack:
aload 14
iconst_2
baload
getstatic sun.misc.UCDecoder.map_array:[B
iload 4
baload
if_icmpne 14
13: iload 4
i2b
istore 11
14: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
15: iload 4
bipush 64
if_icmpge 16
iload 9
iconst_m1
if_icmpeq 8
iload 10
iconst_m1
if_icmpeq 8
iload 11
iconst_m1
if_icmpeq 8
16: StackMap locals:
StackMap stack:
iload 9
bipush 56
iand
iconst_2
ishl
iload 10
bipush 31
iand
iadd
i2b
istore 12
start local 12 17: iload 9
bipush 7
iand
iconst_5
ishl
iload 11
bipush 31
iand
iadd
i2b
istore 13
start local 13 18: iconst_0
istore 5
start local 5 19: iconst_0
istore 6
start local 6 20: iconst_1
istore 4
goto 26
21: StackMap locals: sun.misc.UCDecoder java.io.PushbackInputStream java.io.OutputStream int int int int top top int int int int int byte[]
StackMap stack:
iload 12
iload 4
iand
ifeq 23
22: iinc 5 1
23: StackMap locals:
StackMap stack:
iload 13
iload 4
iand
ifeq 25
24: iinc 6 1
25: StackMap locals:
StackMap stack:
iload 4
iconst_2
imul
istore 4
StackMap locals:
StackMap stack:
26: iload 4
sipush 256
if_icmplt 21
27: iload 10
bipush 32
iand
bipush 32
idiv
istore 7
start local 7 28: iload 11
bipush 32
iand
bipush 32
idiv
istore 8
start local 8 29: iload 5
iconst_1
iand
iload 7
if_icmpeq 31
30: new sun.misc.CEFormatException
dup
ldc "UCDecoder: High byte parity error."
invokespecial sun.misc.CEFormatException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals: sun.misc.UCDecoder java.io.PushbackInputStream java.io.OutputStream int int int int int int int int int int int byte[]
StackMap stack:
iload 6
iconst_1
iand
iload 8
if_icmpeq 33
32: new sun.misc.CEFormatException
dup
ldc "UCDecoder: Low byte parity error."
invokespecial sun.misc.CEFormatException.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals:
StackMap stack:
aload 2
iload 12
invokevirtual java.io.OutputStream.write:(I)V
34: aload 0
getfield sun.misc.UCDecoder.crc:Lsun/misc/CRC16;
iload 12
invokevirtual sun.misc.CRC16.update:(B)V
35: iload 3
iconst_2
if_icmpne 38
36: aload 2
iload 13
invokevirtual java.io.OutputStream.write:(I)V
37: aload 0
getfield sun.misc.UCDecoder.crc:Lsun/misc/CRC16;
iload 13
invokevirtual sun.misc.CRC16.update:(B)V
38: StackMap locals:
StackMap stack:
return
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 39 0 this Lsun/misc/UCDecoder;
0 39 1 inStream Ljava/io/PushbackInputStream;
0 39 2 outStream Ljava/io/OutputStream;
0 39 3 l I
5 39 4 i I
19 39 5 p1 I
20 39 6 p2 I
28 39 7 np1 I
29 39 8 np2 I
1 39 9 a B
2 39 10 b B
3 39 11 c B
17 39 12 high_byte B
18 39 13 low_byte B
4 39 14 tmp [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inStream
outStream
l
protected void decodeBufferPrefix(java.io.PushbackInputStream, java.io.OutputStream);
descriptor: (Ljava/io/PushbackInputStream;Ljava/io/OutputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
putfield sun.misc.UCDecoder.sequence:I
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/UCDecoder;
0 2 1 inStream Ljava/io/PushbackInputStream;
0 2 2 outStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
inStream
outStream
protected int decodeLinePrefix(java.io.PushbackInputStream, java.io.OutputStream);
descriptor: (Ljava/io/PushbackInputStream;Ljava/io/OutputStream;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.misc.UCDecoder.crc:Lsun/misc/CRC16;
iconst_0
putfield sun.misc.CRC16.value:I
1: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.misc.UCDecoder.tmp:[B
iconst_0
iconst_1
invokevirtual java.io.PushbackInputStream.read:([BII)I
istore 6
start local 6 2: iload 6
iconst_m1
if_icmpne 4
3: new sun.misc.CEStreamExhausted
dup
invokespecial sun.misc.CEStreamExhausted.<init>:()V
athrow
4: StackMap locals: sun.misc.UCDecoder java.io.PushbackInputStream java.io.OutputStream top top top int
StackMap stack:
aload 0
getfield sun.misc.UCDecoder.tmp:[B
iconst_0
baload
bipush 42
if_icmpne 1
5: aload 0
getfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.reset:()V
6: aload 0
aload 1
aload 0
getfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
iconst_2
invokevirtual sun.misc.UCDecoder.decodeAtom:(Ljava/io/PushbackInputStream;Ljava/io/OutputStream;I)V
7: aload 0
getfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 5
start local 5 8: aload 5
iconst_0
baload
sipush 255
iand
istore 3
start local 3 9: aload 5
iconst_1
baload
sipush 255
iand
istore 4
start local 4 10: iload 4
aload 0
getfield sun.misc.UCDecoder.sequence:I
if_icmpeq 12
11: new sun.misc.CEFormatException
dup
ldc "UCDecoder: Out of sequence line."
invokespecial sun.misc.CEFormatException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: sun.misc.UCDecoder java.io.PushbackInputStream java.io.OutputStream int int byte[] int
StackMap stack:
aload 0
aload 0
getfield sun.misc.UCDecoder.sequence:I
iconst_1
iadd
sipush 255
iand
putfield sun.misc.UCDecoder.sequence:I
13: iload 3
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 14 0 this Lsun/misc/UCDecoder;
0 14 1 inStream Ljava/io/PushbackInputStream;
0 14 2 outStream Ljava/io/OutputStream;
9 14 3 nLen I
10 14 4 nSeq I
8 14 5 xtmp [B
2 14 6 c I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inStream
outStream
protected void decodeLineSuffix(java.io.PushbackInputStream, java.io.OutputStream);
descriptor: (Ljava/io/PushbackInputStream;Ljava/io/OutputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.misc.UCDecoder.crc:Lsun/misc/CRC16;
getfield sun.misc.CRC16.value:I
istore 3
start local 3 1: aload 0
getfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.reset:()V
2: aload 0
aload 1
aload 0
getfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
iconst_2
invokevirtual sun.misc.UCDecoder.decodeAtom:(Ljava/io/PushbackInputStream;Ljava/io/OutputStream;I)V
3: aload 0
getfield sun.misc.UCDecoder.lineAndSeq:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 5
start local 5 4: aload 5
iconst_0
baload
bipush 8
ishl
ldc 65280
iand
aload 5
iconst_1
baload
sipush 255
iand
iadd
istore 4
start local 4 5: iload 4
iload 3
if_icmpeq 7
6: new sun.misc.CEFormatException
dup
ldc "UCDecoder: CRC check failed."
invokespecial sun.misc.CEFormatException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int int byte[]
StackMap stack:
return
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 8 0 this Lsun/misc/UCDecoder;
0 8 1 inStream Ljava/io/PushbackInputStream;
0 8 2 outStream Ljava/io/OutputStream;
1 8 3 lineCRC I
5 8 4 readCRC I
4 8 5 tmp [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inStream
outStream
}
SourceFile: "UCDecoder.java"