public class sun.nio.cs.StreamDecoder extends java.io.Reader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.nio.cs.StreamDecoder
super_class: java.io.Reader
{
private static final int MIN_BYTE_BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int DEFAULT_BYTE_BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private volatile boolean closed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean haveLeftoverChar;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private char leftoverChar;
descriptor: C
flags: (0x0002) ACC_PRIVATE
private static volatile boolean channelsAvailable;
descriptor: Z
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private java.nio.charset.Charset cs;
descriptor: Ljava/nio/charset/Charset;
flags: (0x0002) ACC_PRIVATE
private java.nio.charset.CharsetDecoder decoder;
descriptor: Ljava/nio/charset/CharsetDecoder;
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer bb;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.io.InputStream in;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private java.nio.channels.ReadableByteChannel ch;
descriptor: Ljava/nio/channels/ReadableByteChannel;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lsun/nio/cs/StreamDecoder;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
3: iconst_1
putstatic sun.nio.cs.StreamDecoder.channelsAvailable:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void ensureOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.closed:Z
ifeq 2
1: new java.io.IOException
dup
ldc "Stream closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/StreamDecoder;
Exceptions:
throws java.io.IOException
public static sun.nio.cs.StreamDecoder forInputStreamReader(java.io.InputStream, java.lang.Object, java.lang.String);
descriptor: (Ljava/io/InputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamDecoder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
astore 3
start local 3 1: aload 3
ifnonnull 3
2: invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
astore 3
3: StackMap locals: java.lang.String
StackMap stack:
aload 3
invokestatic java.nio.charset.Charset.isSupported:(Ljava/lang/String;)Z
ifeq 7
4: new sun.nio.cs.StreamDecoder
dup
aload 0
aload 1
aload 3
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
invokespecial sun.nio.cs.StreamDecoder.<init>:(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
5: areturn
6: StackMap locals:
StackMap stack: java.nio.charset.IllegalCharsetNameException
pop
7: StackMap locals:
StackMap stack:
new java.io.UnsupportedEncodingException
dup
aload 3
invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 in Ljava/io/InputStream;
0 8 1 lock Ljava/lang/Object;
0 8 2 charsetName Ljava/lang/String;
1 8 3 csn Ljava/lang/String;
Exception table:
from to target type
3 5 6 Class java.nio.charset.IllegalCharsetNameException
Exceptions:
throws java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
in
lock
charsetName
public static sun.nio.cs.StreamDecoder forInputStreamReader(java.io.InputStream, java.lang.Object, java.nio.charset.Charset);
descriptor: (Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamDecoder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new sun.nio.cs.StreamDecoder
dup
aload 0
aload 1
aload 2
invokespecial sun.nio.cs.StreamDecoder.<init>:(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 in Ljava/io/InputStream;
0 1 1 lock Ljava/lang/Object;
0 1 2 cs Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
in
lock
cs
public static sun.nio.cs.StreamDecoder forInputStreamReader(java.io.InputStream, java.lang.Object, java.nio.charset.CharsetDecoder);
descriptor: (Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)Lsun/nio/cs/StreamDecoder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new sun.nio.cs.StreamDecoder
dup
aload 0
aload 1
aload 2
invokespecial sun.nio.cs.StreamDecoder.<init>:(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 in Ljava/io/InputStream;
0 1 1 lock Ljava/lang/Object;
0 1 2 dec Ljava/nio/charset/CharsetDecoder;
MethodParameters:
Name Flags
in
lock
dec
public static sun.nio.cs.StreamDecoder forDecoder(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;I)Lsun/nio/cs/StreamDecoder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new sun.nio.cs.StreamDecoder
dup
aload 0
aload 1
iload 2
invokespecial sun.nio.cs.StreamDecoder.<init>:(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;I)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ch Ljava/nio/channels/ReadableByteChannel;
0 1 1 dec Ljava/nio/charset/CharsetDecoder;
0 1 2 minBufferCap I
MethodParameters:
Name Flags
ch
dec
minBufferCap
public java.lang.String getEncoding();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.cs.StreamDecoder.isOpen:()Z
ifeq 2
1: aload 0
invokevirtual sun.nio.cs.StreamDecoder.encodingName:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/StreamDecoder;
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.cs.StreamDecoder.read0:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/cs/StreamDecoder;
Exceptions:
throws java.io.IOException
private int read0();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
ifeq 5
2: aload 0
iconst_0
putfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
3: aload 0
getfield sun.nio.cs.StreamDecoder.leftoverChar:C
aload 1
monitorexit
4: ireturn
5: StackMap locals: java.lang.Object
StackMap stack:
iconst_2
newarray 5
astore 2
start local 2 6: aload 0
aload 2
iconst_0
iconst_2
invokevirtual sun.nio.cs.StreamDecoder.read:([CII)I
istore 3
start local 3 7: iload 3
tableswitch { // -1 - 2
-1: 8
0: 14
1: 12
2: 10
default: 14
}
8: StackMap locals: char[] int
StackMap stack:
aload 1
monitorexit
9: iconst_m1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
aload 2
iconst_1
caload
putfield sun.nio.cs.StreamDecoder.leftoverChar:C
11: aload 0
iconst_1
putfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
12: StackMap locals:
StackMap stack:
aload 2
iconst_0
caload
aload 1
monitorexit
13: ireturn
14: StackMap locals:
StackMap stack:
getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 15
new java.lang.AssertionError
dup
iload 3
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
15: StackMap locals:
StackMap stack:
aload 1
monitorexit
16: iconst_m1
ireturn
end local 3 end local 2 17: StackMap locals: sun.nio.cs.StreamDecoder java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
18: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/cs/StreamDecoder;
6 17 2 cb [C
7 17 3 n I
Exception table:
from to target type
1 4 17 any
5 9 17 any
10 13 17 any
14 16 17 any
17 18 17 any
Exceptions:
throws java.io.IOException
public int read(char[], int, int);
descriptor: ([CII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
istore 4
start local 4 1: iload 3
istore 5
start local 5 2: aload 0
getfield sun.nio.cs.StreamDecoder.lock:Ljava/lang/Object;
dup
astore 6
monitorenter
3: aload 0
invokevirtual sun.nio.cs.StreamDecoder.ensureOpen:()V
4: iload 4
iflt 6
iload 4
aload 1
arraylength
if_icmpgt 6
iload 5
iflt 6
5: iload 4
iload 5
iadd
aload 1
arraylength
if_icmpgt 6
iload 4
iload 5
iadd
ifge 7
6: StackMap locals: int int java.lang.Object
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
iload 5
ifne 10
8: aload 6
monitorexit
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 11: aload 0
getfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
ifeq 19
12: aload 1
iload 4
aload 0
getfield sun.nio.cs.StreamDecoder.leftoverChar:C
castore
13: iinc 4 1
iinc 5 -1
14: aload 0
iconst_0
putfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
15: iconst_1
istore 7
16: iload 5
ifeq 17
aload 0
invokevirtual sun.nio.cs.StreamDecoder.implReady:()Z
ifne 19
17: StackMap locals: int
StackMap stack:
iload 7
aload 6
monitorexit
18: ireturn
19: StackMap locals:
StackMap stack:
iload 5
iconst_1
if_icmpne 29
20: aload 0
invokevirtual sun.nio.cs.StreamDecoder.read0:()I
istore 8
start local 8 21: iload 8
iconst_m1
if_icmpne 26
22: iload 7
ifne 23
iconst_m1
goto 24
StackMap locals: int
StackMap stack:
23: iload 7
StackMap locals:
StackMap stack: int
24: aload 6
monitorexit
25: ireturn
26: StackMap locals:
StackMap stack:
aload 1
iload 4
iload 8
i2c
castore
27: iload 7
iconst_1
iadd
aload 6
monitorexit
28: ireturn
end local 8 29: StackMap locals:
StackMap stack:
iload 7
aload 0
aload 1
iload 4
iload 4
iload 5
iadd
invokevirtual sun.nio.cs.StreamDecoder.implRead:([CII)I
iadd
aload 6
monitorexit
30: ireturn
end local 7 31: StackMap locals: sun.nio.cs.StreamDecoder char[] int int int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 6
monitorexit
32: athrow
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 33 0 this Lsun/nio/cs/StreamDecoder;
0 33 1 cbuf [C
0 33 2 offset I
0 33 3 length I
1 33 4 off I
2 33 5 len I
11 31 7 n I
21 29 8 c I
Exception table:
from to target type
3 9 31 any
10 18 31 any
19 25 31 any
26 28 31 any
29 30 31 any
31 32 31 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cbuf
offset
length
public boolean ready();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.cs.StreamDecoder.ensureOpen:()V
2: aload 0
getfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
ifne 3
aload 0
invokevirtual sun.nio.cs.StreamDecoder.implReady:()Z
ifne 3
iconst_0
goto 4
StackMap locals: java.lang.Object
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: aload 1
monitorexit
5: ireturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
7: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/cs/StreamDecoder;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.cs.StreamDecoder.closed:Z
ifeq 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokevirtual sun.nio.cs.StreamDecoder.implClose:()V
5: aload 0
iconst_1
putfield sun.nio.cs.StreamDecoder.closed:Z
6: aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/cs/StreamDecoder;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
private boolean isOpen();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.closed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/StreamDecoder;
private static java.nio.channels.FileChannel getChannel(java.io.FileInputStream);
descriptor: (Ljava/io/FileInputStream;)Ljava/nio/channels/FileChannel;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic sun.nio.cs.StreamDecoder.channelsAvailable:Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.FileInputStream.getChannel:()Ljava/nio/channels/FileChannel;
3: areturn
4: StackMap locals:
StackMap stack: java.lang.UnsatisfiedLinkError
pop
5: iconst_0
putstatic sun.nio.cs.StreamDecoder.channelsAvailable:Z
6: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 in Ljava/io/FileInputStream;
Exception table:
from to target type
2 3 4 Class java.lang.UnsatisfiedLinkError
MethodParameters:
Name Flags
in
void <init>(java.io.InputStream, java.lang.Object, java.nio.charset.Charset);
descriptor: (Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
1: aload 3
invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
2: getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
3: getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
invokespecial sun.nio.cs.StreamDecoder.<init>:(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/cs/StreamDecoder;
0 5 1 in Ljava/io/InputStream;
0 5 2 lock Ljava/lang/Object;
0 5 3 cs Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
in
lock
cs
void <init>(java.io.InputStream, java.lang.Object, java.nio.charset.CharsetDecoder);
descriptor: (Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokespecial java.io.Reader.<init>:(Ljava/lang/Object;)V
1: aload 0
iconst_0
putfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
2: aload 0
aload 3
invokevirtual java.nio.charset.CharsetDecoder.charset:()Ljava/nio/charset/Charset;
putfield sun.nio.cs.StreamDecoder.cs:Ljava/nio/charset/Charset;
3: aload 0
aload 3
putfield sun.nio.cs.StreamDecoder.decoder:Ljava/nio/charset/CharsetDecoder;
4: aload 0
getfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
ifnonnull 8
5: aload 0
aload 1
putfield sun.nio.cs.StreamDecoder.in:Ljava/io/InputStream;
6: aload 0
aconst_null
putfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
7: aload 0
sipush 8192
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
8: StackMap locals: sun.nio.cs.StreamDecoder java.io.InputStream java.lang.Object java.nio.charset.CharsetDecoder
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/cs/StreamDecoder;
0 10 1 in Ljava/io/InputStream;
0 10 2 lock Ljava/lang/Object;
0 10 3 dec Ljava/nio/charset/CharsetDecoder;
MethodParameters:
Name Flags
in
lock
dec
void <init>(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;I)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.io.Reader.<init>:()V
1: aload 0
iconst_0
putfield sun.nio.cs.StreamDecoder.haveLeftoverChar:Z
2: aload 0
aconst_null
putfield sun.nio.cs.StreamDecoder.in:Ljava/io/InputStream;
3: aload 0
aload 1
putfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
4: aload 0
aload 2
putfield sun.nio.cs.StreamDecoder.decoder:Ljava/nio/charset/CharsetDecoder;
5: aload 0
aload 2
invokevirtual java.nio.charset.CharsetDecoder.charset:()Ljava/nio/charset/Charset;
putfield sun.nio.cs.StreamDecoder.cs:Ljava/nio/charset/Charset;
6: aload 0
iload 3
ifge 8
7: sipush 8192
goto 11
8: StackMap locals: sun.nio.cs.StreamDecoder java.nio.channels.ReadableByteChannel java.nio.charset.CharsetDecoder int
StackMap stack: sun.nio.cs.StreamDecoder
iload 3
bipush 32
if_icmpge 10
9: bipush 32
goto 11
10: StackMap locals:
StackMap stack: sun.nio.cs.StreamDecoder
iload 3
11: StackMap locals: sun.nio.cs.StreamDecoder java.nio.channels.ReadableByteChannel java.nio.charset.CharsetDecoder int
StackMap stack: sun.nio.cs.StreamDecoder int
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
12: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/nio/cs/StreamDecoder;
0 14 1 ch Ljava/nio/channels/ReadableByteChannel;
0 14 2 dec Ljava/nio/charset/CharsetDecoder;
0 14 3 mbc I
MethodParameters:
Name Flags
ch
dec
mbc
private int readBytes();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
1: aload 0
getfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
ifnull 7
2: aload 0
getfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
istore 1
start local 1 3: iload 1
ifge 27
4: iload 1
istore 6
5: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
6: iload 6
ireturn
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
istore 1
start local 1 8: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
istore 2
start local 2 9: getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 10
iload 2
iload 1
if_icmple 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals: int int
StackMap stack:
iload 2
iload 1
if_icmpgt 11
iload 1
iload 2
isub
goto 12
StackMap locals:
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 3
start local 3 13: getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 14
iload 3
ifgt 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.in:Ljava/io/InputStream;
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iload 2
iadd
iload 3
invokevirtual java.io.InputStream.read:([BII)I
istore 4
start local 4 15: iload 4
ifge 19
16: iload 4
istore 6
17: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
18: iload 6
ireturn
19: StackMap locals: int
StackMap stack:
iload 4
ifne 21
20: new java.io.IOException
dup
ldc "Underlying input stream returned zero bytes"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 22
iload 4
iload 3
if_icmple 22
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "n = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", rem = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
iload 2
iload 4
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
end local 4 end local 3 end local 2 end local 1 23: goto 27
StackMap locals: sun.nio.cs.StreamDecoder
StackMap stack: java.lang.Throwable
24: astore 5
25: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
26: aload 5
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
28: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 1
start local 1 29: getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 30
iload 1
ifne 30
new java.lang.AssertionError
dup
iload 1
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
30: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/nio/cs/StreamDecoder;
3 7 1 n I
8 23 1 lim I
9 23 2 pos I
13 23 3 rem I
15 23 4 n I
29 31 1 rem I
Exception table:
from to target type
1 5 24 any
7 17 24 any
19 24 24 any
Exceptions:
throws java.io.IOException
int implRead(char[], int, int);
descriptor: ([CII)I
flags: (0x0000)
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 1
iload 3
iload 2
isub
iconst_1
if_icmpgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
iload 2
isub
invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
astore 4
start local 4 2: aload 4
invokevirtual java.nio.CharBuffer.position:()I
ifeq 4
3: aload 4
invokevirtual java.nio.CharBuffer.slice:()Ljava/nio/CharBuffer;
astore 4
4: StackMap locals: java.nio.CharBuffer
StackMap stack:
iconst_0
istore 5
start local 5 5: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.decoder:Ljava/nio/charset/CharsetDecoder;
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
aload 4
iload 5
invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
astore 6
start local 6 6: aload 6
invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
ifeq 20
7: iload 5
ifeq 9
8: goto 24
9: StackMap locals: java.nio.charset.CoderResult
StackMap stack:
aload 4
invokevirtual java.nio.CharBuffer.hasRemaining:()Z
ifne 11
10: goto 24
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.CharBuffer.position:()I
ifle 13
aload 0
invokevirtual sun.nio.cs.StreamDecoder.inReady:()Z
ifne 13
12: goto 24
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.cs.StreamDecoder.readBytes:()I
istore 7
start local 7 14: iload 7
ifge 5
15: iconst_1
istore 5
16: aload 4
invokevirtual java.nio.CharBuffer.position:()I
ifne 18
aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 18
17: goto 24
18: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.decoder:Ljava/nio/charset/CharsetDecoder;
invokevirtual java.nio.charset.CharsetDecoder.reset:()Ljava/nio/charset/CharsetDecoder;
pop
19: goto 5
end local 7 20: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.nio.charset.CoderResult.isOverflow:()Z
ifeq 22
21: getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 24
aload 4
invokevirtual java.nio.CharBuffer.position:()I
ifgt 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.nio.charset.CoderResult.throwException:()V
end local 6 23: goto 5
24: StackMap locals:
StackMap stack:
iload 5
ifeq 26
25: aload 0
getfield sun.nio.cs.StreamDecoder.decoder:Ljava/nio/charset/CharsetDecoder;
invokevirtual java.nio.charset.CharsetDecoder.reset:()Ljava/nio/charset/CharsetDecoder;
pop
26: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.CharBuffer.position:()I
ifne 30
27: iload 5
ifeq 29
28: iconst_m1
ireturn
29: StackMap locals:
StackMap stack:
getstatic sun.nio.cs.StreamDecoder.$assertionsDisabled:Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.CharBuffer.position:()I
ireturn
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 31 0 this Lsun/nio/cs/StreamDecoder;
0 31 1 cbuf [C
0 31 2 off I
0 31 3 end I
2 31 4 cb Ljava/nio/CharBuffer;
5 31 5 eof Z
6 23 6 cr Ljava/nio/charset/CoderResult;
14 20 7 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cbuf
off
end
java.lang.String encodingName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.cs:Ljava/nio/charset/Charset;
instanceof sun.nio.cs.HistoricallyNamedCharset
ifeq 2
1: aload 0
getfield sun.nio.cs.StreamDecoder.cs:Ljava/nio/charset/Charset;
checkcast sun.nio.cs.HistoricallyNamedCharset
invokeinterface sun.nio.cs.HistoricallyNamedCharset.historicalName:()Ljava/lang/String;
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.cs:Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/cs/StreamDecoder;
private boolean inReady();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.in:Ljava/io/InputStream;
ifnull 1
aload 0
getfield sun.nio.cs.StreamDecoder.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.available:()I
ifgt 3
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
instanceof java.nio.channels.FileChannel
ifne 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
4: ireturn
5: StackMap locals:
StackMap stack: java.io.IOException
pop
6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/cs/StreamDecoder;
Exception table:
from to target type
0 4 5 Class java.io.IOException
boolean implReady();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.bb:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 1
aload 0
invokevirtual sun.nio.cs.StreamDecoder.inReady:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/cs/StreamDecoder;
void implClose();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
ifnull 2
1: aload 0
getfield sun.nio.cs.StreamDecoder.ch:Ljava/nio/channels/ReadableByteChannel;
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.StreamDecoder.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/cs/StreamDecoder;
Exceptions:
throws java.io.IOException
}
SourceFile: "StreamDecoder.java"