class sun.nio.fs.NativeBuffers
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.fs.NativeBuffers
super_class: java.lang.Object
{
private static final sun.misc.Unsafe unsafe;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int TEMP_BUF_POOL_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static java.lang.ThreadLocal<sun.nio.fs.NativeBuffer[]> threadLocal;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/lang/ThreadLocal<[Lsun/nio/fs/NativeBuffer;>;
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/fs/NativeBuffers;
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.fs.NativeBuffers.$assertionsDisabled:Z
3: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic sun.nio.fs.NativeBuffers.unsafe:Lsun/misc/Unsafe;
4: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
5: putstatic sun.nio.fs.NativeBuffers.threadLocal:Ljava/lang/ThreadLocal;
6: 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/fs/NativeBuffers;
static sun.nio.fs.NativeBuffer allocNativeBuffer(int);
descriptor: (I)Lsun/nio/fs/NativeBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
sipush 2048
if_icmpge 1
sipush 2048
istore 0
1: StackMap locals:
StackMap stack:
new sun.nio.fs.NativeBuffer
dup
iload 0
invokespecial sun.nio.fs.NativeBuffer.<init>:(I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 size I
MethodParameters:
Name Flags
size
static sun.nio.fs.NativeBuffer getNativeBufferFromCache(int);
descriptor: (I)Lsun/nio/fs/NativeBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: getstatic sun.nio.fs.NativeBuffers.threadLocal:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.fs.NativeBuffer[]
astore 1
start local 1 1: aload 1
ifnull 10
2: iconst_0
istore 2
start local 2 3: goto 9
4: StackMap locals: sun.nio.fs.NativeBuffer[] int
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 5: aload 3
ifnull 8
aload 3
invokevirtual sun.nio.fs.NativeBuffer.size:()I
iload 0
if_icmplt 8
6: aload 1
iload 2
aconst_null
aastore
7: aload 3
areturn
end local 3 8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
iconst_3
if_icmplt 4
end local 2 10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 size I
1 11 1 buffers [Lsun/nio/fs/NativeBuffer;
3 10 2 i I
5 8 3 buffer Lsun/nio/fs/NativeBuffer;
MethodParameters:
Name Flags
size
static sun.nio.fs.NativeBuffer getNativeBuffer(int);
descriptor: (I)Lsun/nio/fs/NativeBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iload 0
invokestatic sun.nio.fs.NativeBuffers.getNativeBufferFromCache:(I)Lsun/nio/fs/NativeBuffer;
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 1
aconst_null
invokevirtual sun.nio.fs.NativeBuffer.setOwner:(Ljava/lang/Object;)V
3: aload 1
areturn
4: StackMap locals: sun.nio.fs.NativeBuffer
StackMap stack:
iload 0
invokestatic sun.nio.fs.NativeBuffers.allocNativeBuffer:(I)Lsun/nio/fs/NativeBuffer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 size I
1 5 1 buffer Lsun/nio/fs/NativeBuffer;
MethodParameters:
Name Flags
size
static void releaseNativeBuffer(sun.nio.fs.NativeBuffer);
descriptor: (Lsun/nio/fs/NativeBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: getstatic sun.nio.fs.NativeBuffers.threadLocal:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.fs.NativeBuffer[]
astore 1
start local 1 1: aload 1
ifnonnull 6
2: iconst_3
anewarray sun.nio.fs.NativeBuffer
astore 1
3: aload 1
iconst_0
aload 0
aastore
4: getstatic sun.nio.fs.NativeBuffers.threadLocal:Ljava/lang/ThreadLocal;
aload 1
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
5: return
6: StackMap locals: sun.nio.fs.NativeBuffer[]
StackMap stack:
iconst_0
istore 2
start local 2 7: goto 12
8: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
ifnonnull 11
9: aload 1
iload 2
aload 0
aastore
10: return
11: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
12: iload 2
iconst_3
if_icmplt 8
end local 2 13: iconst_0
istore 2
start local 2 14: goto 21
15: StackMap locals:
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 16: aload 3
invokevirtual sun.nio.fs.NativeBuffer.size:()I
aload 0
invokevirtual sun.nio.fs.NativeBuffer.size:()I
if_icmpge 20
17: aload 3
invokevirtual sun.nio.fs.NativeBuffer.cleaner:()Lsun/misc/Cleaner;
invokevirtual sun.misc.Cleaner.clean:()V
18: aload 1
iload 2
aload 0
aastore
19: return
end local 3 20: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
21: iload 2
iconst_3
if_icmplt 15
end local 2 22: aload 0
invokevirtual sun.nio.fs.NativeBuffer.cleaner:()Lsun/misc/Cleaner;
invokevirtual sun.misc.Cleaner.clean:()V
23: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 buffer Lsun/nio/fs/NativeBuffer;
1 24 1 buffers [Lsun/nio/fs/NativeBuffer;
7 13 2 i I
14 22 2 i I
16 20 3 existing Lsun/nio/fs/NativeBuffer;
MethodParameters:
Name Flags
buffer
static void copyCStringToNativeBuffer(byte[], sun.nio.fs.NativeBuffer);
descriptor: ([BLsun/nio/fs/NativeBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=6, args_size=2
start local 0 start local 1 0: getstatic sun.misc.Unsafe.ARRAY_BYTE_BASE_OFFSET:I
i2l
lstore 2
start local 2 1: aload 0
arraylength
i2l
lstore 4
start local 4 2: getstatic sun.nio.fs.NativeBuffers.$assertionsDisabled:Z
ifne 3
aload 1
invokevirtual sun.nio.fs.NativeBuffer.size:()I
i2l
lload 4
lconst_1
ladd
lcmp
ifge 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: long long
StackMap stack:
getstatic sun.nio.fs.NativeBuffers.unsafe:Lsun/misc/Unsafe;
aload 0
lload 2
aconst_null
aload 1
invokevirtual sun.nio.fs.NativeBuffer.address:()J
lload 4
invokevirtual sun.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
4: getstatic sun.nio.fs.NativeBuffers.unsafe:Lsun/misc/Unsafe;
aload 1
invokevirtual sun.nio.fs.NativeBuffer.address:()J
lload 4
ladd
iconst_0
invokevirtual sun.misc.Unsafe.putByte:(JB)V
5: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 cstr [B
0 6 1 buffer Lsun/nio/fs/NativeBuffer;
1 6 2 offset J
2 6 4 len J
MethodParameters:
Name Flags
cstr
buffer
static sun.nio.fs.NativeBuffer asNativeBuffer(byte[]);
descriptor: ([B)Lsun/nio/fs/NativeBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
iadd
invokestatic sun.nio.fs.NativeBuffers.getNativeBuffer:(I)Lsun/nio/fs/NativeBuffer;
astore 1
start local 1 1: aload 0
aload 1
invokestatic sun.nio.fs.NativeBuffers.copyCStringToNativeBuffer:([BLsun/nio/fs/NativeBuffer;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 cstr [B
1 3 1 buffer Lsun/nio/fs/NativeBuffer;
MethodParameters:
Name Flags
cstr
}
SourceFile: "NativeBuffers.java"