class java.io.Console$LineReader extends java.io.Reader
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.io.Console$LineReader
super_class: java.io.Reader
{
private java.io.Reader in;
descriptor: Ljava/io/Reader;
flags: (0x0002) ACC_PRIVATE
private char[] cb;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
private int nChars;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int nextChar;
descriptor: I
flags: (0x0002) ACC_PRIVATE
boolean leftoverLF;
descriptor: Z
flags: (0x0000)
final java.io.Console this$0;
descriptor: Ljava/io/Console;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(java.io.Console, java.io.Reader);
descriptor: (Ljava/io/Console;Ljava/io/Reader;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield java.io.Console$LineReader.this$0:Ljava/io/Console;
aload 0
invokespecial java.io.Reader.<init>:()V
1: aload 0
aload 2
putfield java.io.Console$LineReader.in:Ljava/io/Reader;
2: aload 0
sipush 1024
newarray 5
putfield java.io.Console$LineReader.cb:[C
3: aload 0
aload 0
iconst_0
dup_x1
putfield java.io.Console$LineReader.nChars:I
putfield java.io.Console$LineReader.nextChar:I
4: aload 0
iconst_0
putfield java.io.Console$LineReader.leftoverLF:Z
5: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/io/Console$LineReader;
0 6 2 in Ljava/io/Reader;
MethodParameters:
Name Flags
this$0 final
in
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/Console$LineReader;
public boolean ready();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.Console$LineReader.in:Ljava/io/Reader;
invokevirtual java.io.Reader.ready:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/Console$LineReader;
Exceptions:
throws java.io.IOException
public int read(char[], int, int);
descriptor: ([CII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, 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 2
iload 3
iadd
istore 5
start local 5 2: iload 2
iflt 4
iload 2
aload 1
arraylength
if_icmpgt 4
iload 3
iflt 4
3: iload 5
iflt 4
iload 5
aload 1
arraylength
if_icmple 5
4: StackMap locals: int int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield java.io.Console$LineReader.this$0:Ljava/io/Console;
getfield java.io.Console.readLock:Ljava/lang/Object;
dup
astore 6
monitorenter
6: iconst_0
istore 7
start local 7 7: iconst_0
istore 8
start local 8 8: StackMap locals: java.lang.Object int int
StackMap stack:
aload 0
getfield java.io.Console$LineReader.nextChar:I
aload 0
getfield java.io.Console$LineReader.nChars:I
if_icmplt 24
9: iconst_0
istore 9
start local 9 10: StackMap locals: int
StackMap stack:
aload 0
getfield java.io.Console$LineReader.in:Ljava/io/Reader;
aload 0
getfield java.io.Console$LineReader.cb:[C
iconst_0
aload 0
getfield java.io.Console$LineReader.cb:[C
arraylength
invokevirtual java.io.Reader.read:([CII)I
istore 9
11: iload 9
ifeq 10
12: iload 9
ifle 19
13: aload 0
iload 9
putfield java.io.Console$LineReader.nChars:I
14: aload 0
iconst_0
putfield java.io.Console$LineReader.nextChar:I
15: iload 9
aload 0
getfield java.io.Console$LineReader.cb:[C
arraylength
if_icmpge 24
16: aload 0
getfield java.io.Console$LineReader.cb:[C
iload 9
iconst_1
isub
caload
bipush 10
if_icmpeq 24
aload 0
getfield java.io.Console$LineReader.cb:[C
iload 9
iconst_1
isub
caload
bipush 13
if_icmpeq 24
17: iconst_1
istore 7
18: goto 24
19: StackMap locals:
StackMap stack:
iload 4
iload 2
isub
ifne 22
20: aload 6
monitorexit
21: iconst_m1
ireturn
22: StackMap locals:
StackMap stack:
iload 4
iload 2
isub
aload 6
monitorexit
23: ireturn
end local 9 24: StackMap locals:
StackMap stack:
aload 0
getfield java.io.Console$LineReader.leftoverLF:Z
ifeq 26
aload 1
aload 0
getfield java.io.Console$LineReader.this$0:Ljava/io/Console;
getfield java.io.Console.rcb:[C
if_acmpne 26
aload 0
getfield java.io.Console$LineReader.cb:[C
aload 0
getfield java.io.Console$LineReader.nextChar:I
caload
bipush 10
if_icmpne 26
25: aload 0
dup
getfield java.io.Console$LineReader.nextChar:I
iconst_1
iadd
putfield java.io.Console$LineReader.nextChar:I
26: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.io.Console$LineReader.leftoverLF:Z
27: goto 57
28: StackMap locals:
StackMap stack:
aload 1
iload 4
iinc 4 1
aload 0
getfield java.io.Console$LineReader.cb:[C
aload 0
getfield java.io.Console$LineReader.nextChar:I
caload
dup_x2
castore
istore 8
29: aload 0
getfield java.io.Console$LineReader.cb:[C
aload 0
dup
getfield java.io.Console$LineReader.nextChar:I
dup_x1
iconst_1
iadd
putfield java.io.Console$LineReader.nextChar:I
iconst_0
castore
30: iload 8
bipush 10
if_icmpne 33
31: iload 4
iload 2
isub
aload 6
monitorexit
32: ireturn
33: StackMap locals:
StackMap stack:
iload 8
bipush 13
if_icmpne 50
34: iload 4
iload 5
if_icmpne 42
35: aload 1
aload 0
getfield java.io.Console$LineReader.this$0:Ljava/io/Console;
getfield java.io.Console.rcb:[C
if_acmpne 39
36: aload 0
getfield java.io.Console$LineReader.this$0:Ljava/io/Console;
invokevirtual java.io.Console.grow:()[C
astore 1
37: aload 1
arraylength
istore 5
38: goto 42
39: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield java.io.Console$LineReader.leftoverLF:Z
40: iload 4
iload 2
isub
aload 6
monitorexit
41: ireturn
42: StackMap locals:
StackMap stack:
aload 0
getfield java.io.Console$LineReader.nextChar:I
aload 0
getfield java.io.Console$LineReader.nChars:I
if_icmpne 45
aload 0
getfield java.io.Console$LineReader.in:Ljava/io/Reader;
invokevirtual java.io.Reader.ready:()Z
ifeq 45
43: aload 0
aload 0
getfield java.io.Console$LineReader.in:Ljava/io/Reader;
aload 0
getfield java.io.Console$LineReader.cb:[C
iconst_0
aload 0
getfield java.io.Console$LineReader.cb:[C
arraylength
invokevirtual java.io.Reader.read:([CII)I
putfield java.io.Console$LineReader.nChars:I
44: aload 0
iconst_0
putfield java.io.Console$LineReader.nextChar:I
45: StackMap locals:
StackMap stack:
aload 0
getfield java.io.Console$LineReader.nextChar:I
aload 0
getfield java.io.Console$LineReader.nChars:I
if_icmpge 48
aload 0
getfield java.io.Console$LineReader.cb:[C
aload 0
getfield java.io.Console$LineReader.nextChar:I
caload
bipush 10
if_icmpne 48
46: aload 1
iload 4
iinc 4 1
bipush 10
castore
47: aload 0
dup
getfield java.io.Console$LineReader.nextChar:I
iconst_1
iadd
putfield java.io.Console$LineReader.nextChar:I
48: StackMap locals:
StackMap stack:
iload 4
iload 2
isub
aload 6
monitorexit
49: ireturn
50: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmpne 57
51: aload 1
aload 0
getfield java.io.Console$LineReader.this$0:Ljava/io/Console;
getfield java.io.Console.rcb:[C
if_acmpne 55
52: aload 0
getfield java.io.Console$LineReader.this$0:Ljava/io/Console;
invokevirtual java.io.Console.grow:()[C
astore 1
53: aload 1
arraylength
istore 5
54: goto 57
55: StackMap locals:
StackMap stack:
iload 4
iload 2
isub
aload 6
monitorexit
56: ireturn
57: StackMap locals:
StackMap stack:
aload 0
getfield java.io.Console$LineReader.nextChar:I
aload 0
getfield java.io.Console$LineReader.nChars:I
if_icmplt 28
58: iload 7
ifeq 8
59: iload 4
iload 2
isub
aload 6
monitorexit
60: ireturn
end local 8 end local 7 61: StackMap locals: java.io.Console$LineReader char[] int int int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 6
monitorexit
62: 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 63 0 this Ljava/io/Console$LineReader;
0 63 1 cbuf [C
0 63 2 offset I
0 63 3 length I
1 63 4 off I
2 63 5 end I
7 61 7 eof Z
8 61 8 c C
10 24 9 n I
Exception table:
from to target type
6 21 61 any
22 23 61 any
24 32 61 any
33 41 61 any
42 49 61 any
50 56 61 any
57 60 61 any
61 62 61 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cbuf
offset
length
}
SourceFile: "Console.java"
NestHost: java.io.Console
InnerClasses:
LineReader = java.io.Console$LineReader of java.io.Console