class purejavacomm.PureJavaSerialPort$2 extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: purejavacomm.PureJavaSerialPort$2
super_class: java.io.InputStream
{
private int[] im_Available;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private byte[] im_Buffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int im_VTIME;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int im_VMIN;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final jtermios.Pollfd[] im_ReadPollFD;
descriptor: [Ljtermios/Pollfd;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private byte[] im_Nudge;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private jtermios.JTermios$FDSet im_ReadFDSet;
descriptor: Ljtermios/JTermios$FDSet;
flags: (0x0002) ACC_PRIVATE
private jtermios.TimeVal im_ReadTimeVal;
descriptor: Ljtermios/TimeVal;
flags: (0x0002) ACC_PRIVATE
private int im_PollFDn;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean im_ReceiveTimeoutEnabled;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int im_ReceiveTimeoutValue;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean im_ReceiveThresholdEnabled;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int im_ReceiveThresholdValue;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean im_PollingReadMode;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int im_ReceiveTimeoutVTIME;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final purejavacomm.PureJavaSerialPort this$0;
descriptor: Lpurejavacomm/PureJavaSerialPort;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(purejavacomm.PureJavaSerialPort);
descriptor: (Lpurejavacomm/PureJavaSerialPort;)V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_1
newarray 10
putfield purejavacomm.PureJavaSerialPort$2.im_Available:[I
2: aload 0
sipush 2048
newarray 8
putfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
3: aload 0
iconst_m1
putfield purejavacomm.PureJavaSerialPort$2.im_VTIME:I
4: aload 0
iconst_m1
putfield purejavacomm.PureJavaSerialPort$2.im_VMIN:I
5: aload 0
iconst_2
anewarray jtermios.Pollfd
dup
iconst_0
new jtermios.Pollfd
dup
invokespecial jtermios.Pollfd.<init>:()V
aastore
dup
iconst_1
new jtermios.Pollfd
dup
invokespecial jtermios.Pollfd.<init>:()V
aastore
putfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
6: aload 0
invokestatic jtermios.JTermios.newFDSet:()Ljtermios/JTermios$FDSet;
putfield purejavacomm.PureJavaSerialPort$2.im_ReadFDSet:Ljtermios/JTermios$FDSet;
7: aload 0
new jtermios.TimeVal
dup
invokespecial jtermios.TimeVal.<init>:()V
putfield purejavacomm.PureJavaSerialPort$2.im_ReadTimeVal:Ljtermios/TimeVal;
8: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
iconst_0
aaload
aload 1
getfield purejavacomm.PureJavaSerialPort.m_FD:I
putfield jtermios.Pollfd.fd:I
9: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
iconst_0
aaload
getstatic jtermios.JTermios.POLLIN:S
putfield jtermios.Pollfd.events:S
10: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
iconst_1
aaload
aload 1
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
putfield jtermios.Pollfd.fd:I
11: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
iconst_1
aaload
getstatic jtermios.JTermios.POLLIN:S
putfield jtermios.Pollfd.events:S
12: aload 0
aload 1
getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
ifeq 13
iconst_2
goto 14
StackMap locals: purejavacomm.PureJavaSerialPort$2 purejavacomm.PureJavaSerialPort
StackMap stack: purejavacomm.PureJavaSerialPort$2
13: iconst_1
StackMap locals: purejavacomm.PureJavaSerialPort$2 purejavacomm.PureJavaSerialPort
StackMap stack: purejavacomm.PureJavaSerialPort$2 int
14: putfield purejavacomm.PureJavaSerialPort$2.im_PollFDn:I
15: aload 0
iconst_1
newarray 8
putfield purejavacomm.PureJavaSerialPort$2.im_Nudge:[B
16: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lpurejavacomm/PureJavaSerialPort$2;
MethodParameters:
Name Flags
this$0 final
public final int available();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
ifge 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
invokevirtual purejavacomm.PureJavaSerialPort.checkState:()V
3: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
getstatic jtermios.JTermios.FIONREAD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Available:[I
invokestatic jtermios.JTermios.ioctl:(II[I)I
ifge 7
4: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
invokevirtual purejavacomm.PureJavaSerialPort.close:()V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokestatic com.sun.jna.Native.getLastError:()I
invokevirtual java.io.PrintStream.println:(I)V
6: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Available:[I
iconst_0
iaload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lpurejavacomm/PureJavaSerialPort$2;
Exceptions:
throws java.io.IOException
public final int read();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 0: iconst_1
newarray 8
astore 1
start local 1 1: aload 0
aload 1
iconst_0
iconst_1
invokevirtual purejavacomm.PureJavaSerialPort$2.read:([BII)I
istore 2
start local 2 2: iload 2
ifle 3
aload 1
iconst_0
baload
sipush 255
iand
goto 4
StackMap locals: byte[] int
StackMap stack:
3: iconst_m1
StackMap locals:
StackMap stack: int
4: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lpurejavacomm/PureJavaSerialPort$2;
1 5 1 buf [B
2 5 2 n I
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.io.InputStream.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lpurejavacomm/PureJavaSerialPort$2;
Exceptions:
throws java.io.IOException
private void throwStreamClosedException();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.io.IOException
dup
ldc "Stream Closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpurejavacomm/PureJavaSerialPort$2;
Exceptions:
throws java.io.IOException
public final int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "buffer null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 3
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iload 2
iflt 5
iload 3
iflt 5
iload 2
iload 3
iadd
aload 1
arraylength
if_icmple 6
5: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "buffer.length "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " offset "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " length "
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.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
ifge 8
7: aload 0
invokevirtual purejavacomm.PureJavaSerialPort$2.throwStreamClosedException:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.RAW_READ_MODE:Z
ifeq 41
9: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_TimeoutThresholdChanged:Z
ifeq 30
10: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
dup
astore 4
monitorenter
11: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
ifeq 12
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutVTIME:I
goto 13
StackMap locals: java.lang.Object
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 5
start local 5 14: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdEnabled:Z
ifeq 15
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdValue:I
goto 16
StackMap locals: int
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: istore 6
start local 6 17: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
dup
astore 7
monitorenter
18: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
getfield jtermios.Termios.c_cc:[B
getstatic jtermios.JTermios.VTIME:I
iload 5
i2b
bastore
19: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
getfield jtermios.Termios.c_cc:[B
getstatic jtermios.JTermios.VMIN:I
iload 6
i2b
bastore
20: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
getstatic jtermios.JTermios.TCSANOW:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
21: aload 7
monitorexit
22: goto 25
StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int java.lang.Object int int jtermios.Termios
StackMap stack: java.lang.Throwable
23: aload 7
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_TimeoutThresholdChanged:Z
end local 6 end local 5 26: aload 4
monitorexit
27: goto 30
StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int java.lang.Object
StackMap stack: java.lang.Throwable
28: aload 4
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
iload 2
ifle 38
31: iload 3
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
arraylength
if_icmpge 34
32: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
iload 3
invokestatic jtermios.JTermios.read:(I[BI)I
istore 4
start local 4 33: goto 35
end local 4 34: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
arraylength
invokestatic jtermios.JTermios.read:(I[BI)I
istore 4
start local 4 35: StackMap locals: int
StackMap stack:
iload 4
ifle 39
36: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
iconst_0
aload 1
iload 2
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
37: goto 39
end local 4 38: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 1
iload 3
invokestatic jtermios.JTermios.read:(I[BI)I
istore 4
start local 4 39: StackMap locals: int
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_DataAvailableNotified:Z
40: iload 4
ireturn
end local 4 41: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_TimeoutThresholdChanged:Z
ifeq 54
42: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ThresholdTimeoutLock:Ljava/lang/Object;
dup
astore 4
monitorenter
43: aload 0
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
putfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutEnabled:Z
44: aload 0
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutValue:I
putfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutValue:I
45: aload 0
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdEnabled:Z
putfield purejavacomm.PureJavaSerialPort$2.im_ReceiveThresholdEnabled:Z
46: aload 0
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveThresholdValue:I
putfield purejavacomm.PureJavaSerialPort$2.im_ReceiveThresholdValue:I
47: aload 0
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PollingReadMode:Z
putfield purejavacomm.PureJavaSerialPort$2.im_PollingReadMode:Z
48: aload 0
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutVTIME:I
putfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutVTIME:I
49: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_TimeoutThresholdChanged:Z
50: aload 4
monitorexit
51: goto 54
StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int java.lang.Object
StackMap stack: java.lang.Throwable
52: aload 4
monitorexit
53: athrow
54: StackMap locals:
StackMap stack:
iload 3
istore 4
start local 4 55: iconst_0
istore 5
start local 5 56: StackMap locals: int int
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_PollingReadMode:Z
ifeq 61
57: iconst_0
istore 6
start local 6 58: iconst_0
istore 7
start local 7 59: iconst_0
istore 8
start local 8 60: goto 75
end local 8 end local 7 end local 6 61: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReceiveThresholdEnabled:Z
ifeq 64
62: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReceiveThresholdValue:I
istore 6
start local 6 63: goto 65
end local 6 64: StackMap locals:
StackMap stack:
iconst_1
istore 6
start local 6 65: StackMap locals: int
StackMap stack:
iload 6
iload 4
if_icmple 67
66: iload 4
istore 6
67: StackMap locals:
StackMap stack:
iload 6
sipush 255
if_icmpgt 70
68: iload 6
istore 7
start local 7 69: goto 71
end local 7 70: StackMap locals:
StackMap stack:
sipush 255
istore 7
start local 7 71: StackMap locals: int
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutEnabled:Z
ifeq 74
72: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutVTIME:I
istore 8
start local 8 73: goto 75
end local 8 74: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 75: StackMap locals: int
StackMap stack:
iload 7
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_VMIN:I
if_icmpne 76
iload 8
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_VTIME:I
if_icmpeq 86
76: StackMap locals:
StackMap stack:
aload 0
iload 7
putfield purejavacomm.PureJavaSerialPort$2.im_VMIN:I
77: aload 0
iload 8
putfield purejavacomm.PureJavaSerialPort$2.im_VTIME:I
78: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
dup
astore 9
monitorenter
79: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
getfield jtermios.Termios.c_cc:[B
getstatic jtermios.JTermios.VTIME:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_VTIME:I
i2b
bastore
80: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
getfield jtermios.Termios.c_cc:[B
getstatic jtermios.JTermios.VMIN:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_VMIN:I
i2b
bastore
81: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
getstatic jtermios.JTermios.TCSANOW:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_Termios:Ljtermios/Termios;
invokestatic jtermios.JTermios.tcsetattr:(IILjtermios/Termios;)I
invokevirtual purejavacomm.PureJavaSerialPort.checkReturnCode:(I)V
82: aload 9
monitorexit
83: goto 86
StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int int int int int int jtermios.Termios
StackMap stack: java.lang.Throwable
84: aload 9
monitorexit
85: athrow
86: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 87: iconst_0
istore 10
start local 10 88: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_PollingReadMode:Z
ifne 127
89: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutEnabled:Z
ifeq 90
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReceiveTimeoutValue:I
goto 91
StackMap locals: int int
StackMap stack:
90: ldc 2147483647
StackMap locals:
StackMap stack: int
91: istore 12
start local 12 92: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.USE_POLL:Z
ifeq 105
93: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_PollFDn:I
iload 12
invokestatic jtermios.JTermios.poll:([Ljtermios/Pollfd;II)I
istore 11
start local 11 94: iload 11
iflt 95
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
ifge 96
95: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual purejavacomm.PureJavaSerialPort$2.throwStreamClosedException:()V
96: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
iconst_1
aaload
getfield jtermios.Pollfd.revents:S
getstatic jtermios.JTermios.POLLIN:S
iand
ifeq 98
97: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Nudge:[B
iconst_1
invokestatic jtermios.JTermios.read:(I[BI)I
pop
98: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadPollFD:[Ljtermios/Pollfd;
iconst_0
aaload
getfield jtermios.Pollfd.revents:S
istore 13
start local 13 99: iload 13
getstatic jtermios.JTermios.POLLNVAL:S
iand
ifeq 101
100: aload 0
invokevirtual purejavacomm.PureJavaSerialPort$2.throwStreamClosedException:()V
101: StackMap locals: int
StackMap stack:
iload 13
getstatic jtermios.JTermios.POLLIN:S
iand
ifeq 102
iconst_1
goto 103
StackMap locals:
StackMap stack:
102: iconst_0
StackMap locals:
StackMap stack: int
103: istore 9
end local 13 104: goto 125
end local 11 105: StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int int int int int int int int top int
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadFDSet:Ljtermios/JTermios$FDSet;
invokestatic jtermios.JTermios.FD_ZERO:(Ljtermios/JTermios$FDSet;)V
106: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadFDSet:Ljtermios/JTermios$FDSet;
invokestatic jtermios.JTermios.FD_SET:(ILjtermios/JTermios$FDSet;)V
107: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
istore 13
start local 13 108: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_HaveNudgePipe:Z
ifeq 112
109: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadFDSet:Ljtermios/JTermios$FDSet;
invokestatic jtermios.JTermios.FD_SET:(ILjtermios/JTermios$FDSet;)V
110: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
iload 13
if_icmple 112
111: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_PipeRdFD:I
istore 13
112: StackMap locals: int
StackMap stack:
iload 12
sipush 1000
if_icmplt 117
113: iload 12
sipush 1000
idiv
istore 14
start local 14 114: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadTimeVal:Ljtermios/TimeVal;
iload 14
i2l
putfield jtermios.TimeVal.tv_sec:J
115: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadTimeVal:Ljtermios/TimeVal;
iload 12
iload 14
sipush 1000
imul
isub
sipush 1000
imul
i2l
putfield jtermios.TimeVal.tv_usec:J
end local 14 116: goto 119
117: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadTimeVal:Ljtermios/TimeVal;
lconst_0
putfield jtermios.TimeVal.tv_sec:J
118: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadTimeVal:Ljtermios/TimeVal;
iload 12
sipush 1000
imul
i2l
putfield jtermios.TimeVal.tv_usec:J
119: StackMap locals:
StackMap stack:
iload 13
iconst_1
iadd
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadFDSet:Ljtermios/JTermios$FDSet;
aconst_null
aconst_null
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadTimeVal:Ljtermios/TimeVal;
invokestatic jtermios.JTermios.select:(ILjtermios/JTermios$FDSet;Ljtermios/JTermios$FDSet;Ljtermios/JTermios$FDSet;Ljtermios/TimeVal;)I
istore 11
start local 11 120: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
ifge 122
121: aload 0
invokevirtual purejavacomm.PureJavaSerialPort$2.throwStreamClosedException:()V
122: StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int int int int int int int int int int int
StackMap stack:
iload 11
ifge 124
123: new java.io.IOException
dup
ldc "select() < 0 , errno()=%d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
invokestatic jtermios.JTermios.errno:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
124: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_ReadFDSet:Ljtermios/JTermios$FDSet;
invokestatic jtermios.JTermios.FD_ISSET:(ILjtermios/JTermios$FDSet;)Z
istore 9
end local 13 125: StackMap locals:
StackMap stack:
iload 11
ifne 127
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_ReceiveTimeoutEnabled:Z
ifeq 127
126: iconst_1
istore 10
end local 12 end local 11 127: StackMap locals:
StackMap stack:
iload 10
ifeq 129
128: goto 151
129: StackMap locals:
StackMap stack:
iconst_0
istore 11
start local 11 130: iload 9
ifne 131
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_PollingReadMode:Z
ifeq 141
131: StackMap locals: int
StackMap stack:
iload 2
ifle 138
132: iload 4
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
arraylength
if_icmpge 134
133: aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
iload 4
invokestatic jtermios.JTermios.read:(I[BI)I
istore 11
goto 135
134: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
arraylength
invokestatic jtermios.JTermios.read:(I[BI)I
istore 11
135: StackMap locals:
StackMap stack:
iload 11
ifle 139
136: aload 0
getfield purejavacomm.PureJavaSerialPort$2.im_Buffer:[B
iconst_0
aload 1
iload 2
iload 11
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
137: goto 139
138: StackMap locals:
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
getfield purejavacomm.PureJavaSerialPort.m_FD:I
aload 1
iload 4
invokestatic jtermios.JTermios.read:(I[BI)I
istore 11
139: StackMap locals:
StackMap stack:
iload 11
ifne 141
140: iconst_1
istore 10
141: StackMap locals:
StackMap stack:
iload 11
ifge 143
142: new java.io.IOException
dup
ldc "read() < 0 , errno()=%d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
invokestatic jtermios.JTermios.errno:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
143: StackMap locals:
StackMap stack:
iload 5
iload 11
iadd
istore 5
144: iload 5
iload 6
if_icmplt 146
145: goto 151
146: StackMap locals:
StackMap stack:
iload 10
ifeq 148
147: goto 151
148: StackMap locals:
StackMap stack:
iload 2
iload 11
iadd
istore 2
149: iload 4
iload 11
isub
istore 4
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 150: goto 56
start local 6 151: StackMap locals: purejavacomm.PureJavaSerialPort$2 byte[] int int int int int
StackMap stack:
aload 0
getfield purejavacomm.PureJavaSerialPort$2.this$0:Lpurejavacomm/PureJavaSerialPort;
iconst_0
putfield purejavacomm.PureJavaSerialPort.m_DataAvailableNotified:Z
152: iload 5
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 153 0 this Lpurejavacomm/PureJavaSerialPort$2;
0 153 1 buffer [B
0 153 2 offset I
0 153 3 length I
14 26 5 vtime I
17 26 6 vmin I
33 34 4 bytesRead I
35 38 4 bytesRead I
39 41 4 bytesRead I
55 153 4 bytesLeft I
56 153 5 bytesReceived I
58 61 6 minBytesRequired I
63 64 6 minBytesRequired I
65 150 6 minBytesRequired I
151 153 6 minBytesRequired I
59 61 7 vmin I
69 70 7 vmin I
71 150 7 vmin I
60 61 8 vtime I
73 74 8 vtime I
75 150 8 vtime I
87 150 9 dataAvailable Z
88 150 10 timedout Z
94 105 11 n I
120 127 11 n I
92 127 12 timeoutValue I
99 104 13 re I
108 125 13 maxFD I
114 116 14 t I
130 150 11 bytesRead I
Exception table:
from to target type
18 22 23 any
23 24 23 any
11 27 28 any
28 29 28 any
43 51 52 any
52 53 52 any
79 83 84 any
84 85 84 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
offset
length
}
SourceFile: "PureJavaSerialPort.java"
EnclosingMethod: purejavacomm.PureJavaSerialPort.getInputStream:()Ljava/io/InputStream;
NestHost: purejavacomm.PureJavaSerialPort
InnerClasses:
public abstract FDSet = jtermios.JTermios$FDSet of jtermios.JTermios
purejavacomm.PureJavaSerialPort$2