class sun.nio.ch.IOUtil
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.IOUtil
super_class: java.lang.Object
{
static final int IOV_MAX;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
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=2, locals=0, args_size=0
0: ldc Lsun/nio/ch/IOUtil;
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.ch.IOUtil.$assertionsDisabled:Z
3: new sun.nio.ch.IOUtil$1
dup
invokespecial sun.nio.ch.IOUtil$1.<init>:()V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
5: invokestatic sun.nio.ch.IOUtil.initIDs:()V
6: invokestatic sun.nio.ch.IOUtil.iovMax:()I
putstatic sun.nio.ch.IOUtil.IOV_MAX:I
7: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/IOUtil;
static int write(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
instanceof sun.nio.ch.DirectBuffer
ifeq 2
1: aload 0
aload 1
lload 2
aload 4
invokestatic sun.nio.ch.IOUtil.writeFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 3: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 4: getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
ifne 5
iload 5
iload 6
if_icmple 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: int int
StackMap stack:
iload 5
iload 6
if_icmpgt 6
iload 6
iload 5
isub
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 7
start local 7 8: iload 7
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 8
start local 8 9: aload 8
aload 1
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
10: aload 8
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
11: aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
12: aload 0
aload 8
lload 2
aload 4
invokestatic sun.nio.ch.IOUtil.writeFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 9
start local 9 13: iload 9
ifle 15
14: aload 1
iload 5
iload 9
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
15: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 9
istore 11
16: aload 8
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
17: iload 11
ireturn
end local 9 18: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer long sun.nio.ch.NativeDispatcher int int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 10
19: aload 8
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
20: aload 10
athrow
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 fd Ljava/io/FileDescriptor;
0 21 1 src Ljava/nio/ByteBuffer;
0 21 2 position J
0 21 4 nd Lsun/nio/ch/NativeDispatcher;
3 21 5 pos I
4 21 6 lim I
8 21 7 rem I
9 21 8 bb Ljava/nio/ByteBuffer;
13 18 9 n I
Exception table:
from to target type
9 16 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
src
position
nd
private static int writeFromNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 1: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 2: getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
ifne 3
iload 5
iload 6
if_icmple 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int int
StackMap stack:
iload 5
iload 6
if_icmpgt 4
iload 6
iload 5
isub
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: iload 7
ifne 9
8: iconst_0
ireturn
9: StackMap locals: int int
StackMap stack:
lload 2
ldc -1
lcmp
ifeq 15
10: aload 4
aload 0
11: aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
12: iload 7
lload 2
13: invokevirtual sun.nio.ch.NativeDispatcher.pwrite:(Ljava/io/FileDescriptor;JIJ)I
istore 8
14: goto 16
15: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
iload 7
invokevirtual sun.nio.ch.NativeDispatcher.write:(Ljava/io/FileDescriptor;JI)I
istore 8
16: StackMap locals:
StackMap stack:
iload 8
ifle 18
17: aload 1
iload 5
iload 8
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
18: StackMap locals:
StackMap stack:
iload 8
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 fd Ljava/io/FileDescriptor;
0 19 1 bb Ljava/nio/ByteBuffer;
0 19 2 position J
0 19 4 nd Lsun/nio/ch/NativeDispatcher;
1 19 5 pos I
2 19 6 lim I
6 19 7 rem I
7 19 8 written I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bb
position
nd
static long write(java.io.FileDescriptor, java.nio.ByteBuffer[], sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
aload 1
arraylength
aload 2
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fd Ljava/io/FileDescriptor;
0 1 1 bufs [Ljava/nio/ByteBuffer;
0 1 2 nd Lsun/nio/ch/NativeDispatcher;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bufs
nd
static long write(java.io.FileDescriptor, java.nio.ByteBuffer[], int, int, sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=24, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 3
invokestatic sun.nio.ch.IOVecWrapper.get:(I)Lsun/nio/ch/IOVecWrapper;
astore 5
start local 5 1: iconst_0
istore 6
start local 6 2: iconst_0
istore 7
start local 7 3: iload 2
iload 3
iadd
istore 8
start local 8 4: iload 2
istore 9
start local 9 5: goto 27
6: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
StackMap stack:
aload 1
iload 9
aaload
astore 10
start local 10 7: aload 10
invokevirtual java.nio.ByteBuffer.position:()I
istore 11
start local 11 8: aload 10
invokevirtual java.nio.ByteBuffer.limit:()I
istore 12
start local 12 9: getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
ifne 10
iload 11
iload 12
if_icmple 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals: java.nio.ByteBuffer int int
StackMap stack:
iload 11
iload 12
if_icmpgt 11
iload 12
iload 11
isub
goto 12
StackMap locals:
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 13
start local 13 13: iload 13
ifle 26
14: aload 5
iload 7
aload 10
iload 11
iload 13
invokevirtual sun.nio.ch.IOVecWrapper.setBuffer:(ILjava/nio/ByteBuffer;II)V
15: aload 10
instanceof sun.nio.ch.DirectBuffer
ifne 23
16: iload 13
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 14
start local 14 17: aload 14
aload 10
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
18: aload 14
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
19: aload 5
iload 7
aload 14
invokevirtual sun.nio.ch.IOVecWrapper.setShadow:(ILjava/nio/ByteBuffer;)V
20: aload 10
iload 11
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
21: aload 14
astore 10
22: aload 14
invokevirtual java.nio.ByteBuffer.position:()I
istore 11
end local 14 23: StackMap locals: int
StackMap stack:
aload 5
iload 7
aload 10
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 11
i2l
ladd
invokevirtual sun.nio.ch.IOVecWrapper.putBase:(IJ)V
24: aload 5
iload 7
iload 13
i2l
invokevirtual sun.nio.ch.IOVecWrapper.putLen:(IJ)V
25: iinc 7 1
26: StackMap locals:
StackMap stack:
iinc 9 1
end local 13 end local 12 end local 11 end local 10 27: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
StackMap stack:
iload 9
iload 8
if_icmpge 28
iload 7
getstatic sun.nio.ch.IOUtil.IOV_MAX:I
if_icmplt 6
28: StackMap locals:
StackMap stack:
iload 7
ifne 39
29: iload 6
ifne 38
30: iconst_0
istore 22
start local 22 31: goto 37
32: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int top top top top top top top top top top top top int
StackMap stack:
aload 5
iload 22
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 23
start local 23 33: aload 23
ifnull 35
34: aload 23
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
35: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 22
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 23 36: iinc 22 1
StackMap locals:
StackMap stack:
37: iload 22
iload 7
if_icmplt 32
end local 22 38: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
StackMap stack:
lconst_0
lreturn
39: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 5
getfield sun.nio.ch.IOVecWrapper.address:J
iload 7
invokevirtual sun.nio.ch.NativeDispatcher.writev:(Ljava/io/FileDescriptor;JI)J
lstore 10
start local 10 40: lload 10
lstore 12
start local 12 41: iconst_0
istore 14
start local 14 42: goto 57
43: StackMap locals: long long int
StackMap stack:
lload 12
lconst_0
lcmp
ifle 52
44: aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getBuffer:(I)Ljava/nio/ByteBuffer;
astore 15
start local 15 45: aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getPosition:(I)I
istore 16
start local 16 46: aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getRemaining:(I)I
istore 17
start local 17 47: lload 12
iload 17
i2l
lcmp
ifle 48
iload 17
goto 49
StackMap locals: java.nio.ByteBuffer int int
StackMap stack:
48: lload 12
l2i
StackMap locals:
StackMap stack: int
49: istore 18
start local 18 50: aload 15
iload 16
iload 18
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
51: lload 12
iload 18
i2l
lsub
lstore 12
end local 18 end local 17 end local 16 end local 15 52: StackMap locals:
StackMap stack:
aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 15
start local 15 53: aload 15
ifnull 55
54: aload 15
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
55: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 15 56: iinc 14 1
StackMap locals:
StackMap stack:
57: iload 14
iload 7
if_icmplt 43
end local 14 58: iconst_1
istore 6
59: lload 10
lstore 20
60: iload 6
ifne 69
61: iconst_0
istore 22
start local 22 62: goto 68
63: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int long long top top top top top top long int
StackMap stack:
aload 5
iload 22
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 23
start local 23 64: aload 23
ifnull 66
65: aload 23
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
66: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 22
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 23 67: iinc 22 1
StackMap locals:
StackMap stack:
68: iload 22
iload 7
if_icmplt 63
end local 22 69: StackMap locals:
StackMap stack:
lload 20
lreturn
end local 12 end local 10 end local 9 end local 8 70: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int
StackMap stack: java.lang.Throwable
astore 19
71: iload 6
ifne 80
72: iconst_0
istore 22
start local 22 73: goto 79
74: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top java.lang.Throwable top top int
StackMap stack:
aload 5
iload 22
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 23
start local 23 75: aload 23
ifnull 77
76: aload 23
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
77: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 22
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 23 78: iinc 22 1
StackMap locals:
StackMap stack:
79: iload 22
iload 7
if_icmplt 74
end local 22 80: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 19
athrow
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 81 0 fd Ljava/io/FileDescriptor;
0 81 1 bufs [Ljava/nio/ByteBuffer;
0 81 2 offset I
0 81 3 length I
0 81 4 nd Lsun/nio/ch/NativeDispatcher;
1 81 5 vec Lsun/nio/ch/IOVecWrapper;
2 81 6 completed Z
3 81 7 iov_len I
4 70 8 count I
5 70 9 i I
7 27 10 buf Ljava/nio/ByteBuffer;
8 27 11 pos I
9 27 12 lim I
13 27 13 rem I
17 23 14 shadow Ljava/nio/ByteBuffer;
40 70 10 bytesWritten J
41 70 12 left J
42 58 14 j I
45 52 15 buf Ljava/nio/ByteBuffer;
46 52 16 pos I
47 52 17 rem I
50 52 18 n I
53 56 15 shadow Ljava/nio/ByteBuffer;
31 38 22 j I
62 69 22 j I
73 80 22 j I
33 36 23 shadow Ljava/nio/ByteBuffer;
64 67 23 shadow Ljava/nio/ByteBuffer;
75 78 23 shadow Ljava/nio/ByteBuffer;
Exception table:
from to target type
3 29 70 any
39 60 70 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bufs
offset
length
nd
static int read(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Read-only buffer"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof sun.nio.ch.DirectBuffer
ifeq 4
3: aload 0
aload 1
lload 2
aload 4
invokestatic sun.nio.ch.IOUtil.readIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
ireturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 5
start local 5 5: aload 0
aload 5
lload 2
aload 4
invokestatic sun.nio.ch.IOUtil.readIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 6
start local 6 6: aload 5
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
7: iload 6
ifle 9
8: aload 1
aload 5
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
9: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
iload 6
istore 8
10: aload 5
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
11: iload 8
ireturn
end local 6 12: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer long sun.nio.ch.NativeDispatcher java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 7
13: aload 5
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
14: aload 7
athrow
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 fd Ljava/io/FileDescriptor;
0 15 1 dst Ljava/nio/ByteBuffer;
0 15 2 position J
0 15 4 nd Lsun/nio/ch/NativeDispatcher;
5 15 5 bb Ljava/nio/ByteBuffer;
6 12 6 n I
Exception table:
from to target type
5 10 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
dst
position
nd
private static int readIntoNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, long, sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 1: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 2: getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
ifne 3
iload 5
iload 6
if_icmple 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int int
StackMap stack:
iload 5
iload 6
if_icmpgt 4
iload 6
iload 5
isub
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 7
start local 7 6: iload 7
ifne 8
7: iconst_0
ireturn
8: StackMap locals: int
StackMap stack:
iconst_0
istore 8
start local 8 9: lload 2
ldc -1
lcmp
ifeq 14
10: aload 4
aload 0
aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
11: iload 7
lload 2
12: invokevirtual sun.nio.ch.NativeDispatcher.pread:(Ljava/io/FileDescriptor;JIJ)I
istore 8
13: goto 15
14: StackMap locals: int
StackMap stack:
aload 4
aload 0
aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
iload 7
invokevirtual sun.nio.ch.NativeDispatcher.read:(Ljava/io/FileDescriptor;JI)I
istore 8
15: StackMap locals:
StackMap stack:
iload 8
ifle 17
16: aload 1
iload 5
iload 8
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
17: StackMap locals:
StackMap stack:
iload 8
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 fd Ljava/io/FileDescriptor;
0 18 1 bb Ljava/nio/ByteBuffer;
0 18 2 position J
0 18 4 nd Lsun/nio/ch/NativeDispatcher;
1 18 5 pos I
2 18 6 lim I
6 18 7 rem I
9 18 8 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bb
position
nd
static long read(java.io.FileDescriptor, java.nio.ByteBuffer[], sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
aload 1
arraylength
aload 2
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fd Ljava/io/FileDescriptor;
0 1 1 bufs [Ljava/nio/ByteBuffer;
0 1 2 nd Lsun/nio/ch/NativeDispatcher;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bufs
nd
static long read(java.io.FileDescriptor, java.nio.ByteBuffer[], int, int, sun.nio.ch.NativeDispatcher);
descriptor: (Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=25, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 3
invokestatic sun.nio.ch.IOVecWrapper.get:(I)Lsun/nio/ch/IOVecWrapper;
astore 5
start local 5 1: iconst_0
istore 6
start local 6 2: iconst_0
istore 7
start local 7 3: iload 2
iload 3
iadd
istore 8
start local 8 4: iload 2
istore 9
start local 9 5: goto 26
6: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
StackMap stack:
aload 1
iload 9
aaload
astore 10
start local 10 7: aload 10
invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
ifeq 9
8: new java.lang.IllegalArgumentException
dup
ldc "Read-only buffer"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 10
invokevirtual java.nio.ByteBuffer.position:()I
istore 11
start local 11 10: aload 10
invokevirtual java.nio.ByteBuffer.limit:()I
istore 12
start local 12 11: getstatic sun.nio.ch.IOUtil.$assertionsDisabled:Z
ifne 12
iload 11
iload 12
if_icmple 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals: int int
StackMap stack:
iload 11
iload 12
if_icmpgt 13
iload 12
iload 11
isub
goto 14
StackMap locals:
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 13
start local 13 15: iload 13
ifle 25
16: aload 5
iload 7
aload 10
iload 11
iload 13
invokevirtual sun.nio.ch.IOVecWrapper.setBuffer:(ILjava/nio/ByteBuffer;II)V
17: aload 10
instanceof sun.nio.ch.DirectBuffer
ifne 22
18: iload 13
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 14
start local 14 19: aload 5
iload 7
aload 14
invokevirtual sun.nio.ch.IOVecWrapper.setShadow:(ILjava/nio/ByteBuffer;)V
20: aload 14
astore 10
21: aload 14
invokevirtual java.nio.ByteBuffer.position:()I
istore 11
end local 14 22: StackMap locals: int
StackMap stack:
aload 5
iload 7
aload 10
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 11
i2l
ladd
invokevirtual sun.nio.ch.IOVecWrapper.putBase:(IJ)V
23: aload 5
iload 7
iload 13
i2l
invokevirtual sun.nio.ch.IOVecWrapper.putLen:(IJ)V
24: iinc 7 1
25: StackMap locals:
StackMap stack:
iinc 9 1
end local 13 end local 12 end local 11 end local 10 26: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
StackMap stack:
iload 9
iload 8
if_icmpge 27
iload 7
getstatic sun.nio.ch.IOUtil.IOV_MAX:I
if_icmplt 6
27: StackMap locals:
StackMap stack:
iload 7
ifne 38
28: iload 6
ifne 37
29: iconst_0
istore 23
start local 23 30: goto 36
31: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int top top top top top top top top top top top top top int
StackMap stack:
aload 5
iload 23
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 24
start local 24 32: aload 24
ifnull 34
33: aload 24
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
34: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 23
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 24 35: iinc 23 1
StackMap locals:
StackMap stack:
36: iload 23
iload 7
if_icmplt 31
end local 23 37: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int
StackMap stack:
lconst_0
lreturn
38: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 5
getfield sun.nio.ch.IOVecWrapper.address:J
iload 7
invokevirtual sun.nio.ch.NativeDispatcher.readv:(Ljava/io/FileDescriptor;JI)J
lstore 10
start local 10 39: lload 10
lstore 12
start local 12 40: iconst_0
istore 14
start local 14 41: goto 60
42: StackMap locals: long long int
StackMap stack:
aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 15
start local 15 43: lload 12
lconst_0
lcmp
ifle 56
44: aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getBuffer:(I)Ljava/nio/ByteBuffer;
astore 16
start local 16 45: aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getRemaining:(I)I
istore 17
start local 17 46: lload 12
iload 17
i2l
lcmp
ifle 47
iload 17
goto 48
StackMap locals: java.nio.ByteBuffer java.nio.ByteBuffer int
StackMap stack:
47: lload 12
l2i
StackMap locals:
StackMap stack: int
48: istore 18
start local 18 49: aload 15
ifnonnull 53
50: aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.getPosition:(I)I
istore 19
start local 19 51: aload 16
iload 19
iload 18
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
end local 19 52: goto 55
53: StackMap locals: int
StackMap stack:
aload 15
aload 15
invokevirtual java.nio.ByteBuffer.position:()I
iload 18
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
54: aload 16
aload 15
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
55: StackMap locals:
StackMap stack:
lload 12
iload 18
i2l
lsub
lstore 12
end local 18 end local 17 end local 16 56: StackMap locals:
StackMap stack:
aload 15
ifnull 58
57: aload 15
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
58: StackMap locals:
StackMap stack:
aload 5
iload 14
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 15 59: iinc 14 1
StackMap locals:
StackMap stack:
60: iload 14
iload 7
if_icmplt 42
end local 14 61: iconst_1
istore 6
62: lload 10
lstore 21
63: iload 6
ifne 72
64: iconst_0
istore 23
start local 23 65: goto 71
66: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int int int long long top top top top top top top long int
StackMap stack:
aload 5
iload 23
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 24
start local 24 67: aload 24
ifnull 69
68: aload 24
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
69: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 23
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 24 70: iinc 23 1
StackMap locals:
StackMap stack:
71: iload 23
iload 7
if_icmplt 66
end local 23 72: StackMap locals:
StackMap stack:
lload 21
lreturn
end local 12 end local 10 end local 9 end local 8 73: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int
StackMap stack: java.lang.Throwable
astore 20
74: iload 6
ifne 83
75: iconst_0
istore 23
start local 23 76: goto 82
77: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top top java.lang.Throwable top top int
StackMap stack:
aload 5
iload 23
invokevirtual sun.nio.ch.IOVecWrapper.getShadow:(I)Ljava/nio/ByteBuffer;
astore 24
start local 24 78: aload 24
ifnull 80
79: aload 24
invokestatic sun.nio.ch.Util.offerLastTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
80: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 5
iload 23
invokevirtual sun.nio.ch.IOVecWrapper.clearRefs:(I)V
end local 24 81: iinc 23 1
StackMap locals:
StackMap stack:
82: iload 23
iload 7
if_icmplt 77
end local 23 83: StackMap locals: java.io.FileDescriptor java.nio.ByteBuffer[] int int sun.nio.ch.NativeDispatcher sun.nio.ch.IOVecWrapper int int top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 20
athrow
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 84 0 fd Ljava/io/FileDescriptor;
0 84 1 bufs [Ljava/nio/ByteBuffer;
0 84 2 offset I
0 84 3 length I
0 84 4 nd Lsun/nio/ch/NativeDispatcher;
1 84 5 vec Lsun/nio/ch/IOVecWrapper;
2 84 6 completed Z
3 84 7 iov_len I
4 73 8 count I
5 73 9 i I
7 26 10 buf Ljava/nio/ByteBuffer;
10 26 11 pos I
11 26 12 lim I
15 26 13 rem I
19 22 14 shadow Ljava/nio/ByteBuffer;
39 73 10 bytesRead J
40 73 12 left J
41 61 14 j I
43 59 15 shadow Ljava/nio/ByteBuffer;
45 56 16 buf Ljava/nio/ByteBuffer;
46 56 17 rem I
49 56 18 n I
51 52 19 pos I
30 37 23 j I
65 72 23 j I
76 83 23 j I
32 35 24 shadow Ljava/nio/ByteBuffer;
67 70 24 shadow Ljava/nio/ByteBuffer;
78 81 24 shadow Ljava/nio/ByteBuffer;
Exception table:
from to target type
3 28 73 any
38 63 73 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bufs
offset
length
nd
static java.io.FileDescriptor newFD(int);
descriptor: (I)Ljava/io/FileDescriptor;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.io.FileDescriptor
dup
invokespecial java.io.FileDescriptor.<init>:()V
astore 1
start local 1 1: aload 1
iload 0
invokestatic sun.nio.ch.IOUtil.setfdVal:(Ljava/io/FileDescriptor;I)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 i I
1 3 1 fd Ljava/io/FileDescriptor;
MethodParameters:
Name Flags
i
static native boolean randomBytes(byte[]);
descriptor: ([B)Z
flags: (0x0108) ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
someBytes
static native long makePipe(boolean);
descriptor: (Z)J
flags: (0x0108) ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
blocking
static native boolean drain(int);
descriptor: (I)Z
flags: (0x0108) ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
static native void configureBlocking(java.io.FileDescriptor, boolean);
descriptor: (Ljava/io/FileDescriptor;Z)V
flags: (0x0108) ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
blocking
static native int fdVal(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)I
flags: (0x0108) ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
fd
static native void setfdVal(java.io.FileDescriptor, int);
descriptor: (Ljava/io/FileDescriptor;I)V
flags: (0x0108) ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
fd
value
static native int iovMax();
descriptor: ()I
flags: (0x0108) ACC_STATIC, ACC_NATIVE
static native int fdLimit();
descriptor: ()I
flags: (0x0108) ACC_STATIC, ACC_NATIVE
static native void initIDs();
descriptor: ()V
flags: (0x0108) ACC_STATIC, ACC_NATIVE
public static void load();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=0, args_size=0
0: return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "IOUtil.java"
NestMembers:
sun.nio.ch.IOUtil$1
InnerClasses:
sun.nio.ch.IOUtil$1