class java.nio.Bits
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.nio.Bits
super_class: java.lang.Object
{
private static final jdk.internal.misc.Unsafe UNSAFE;
descriptor: Ljdk/internal/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static int PAGE_SIZE;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static boolean UNALIGNED;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static volatile long MAX_MEMORY;
descriptor: J
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicLong RESERVED_MEMORY;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicLong TOTAL_CAPACITY;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicLong COUNT;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static volatile boolean MEMORY_LIMIT_SET;
descriptor: Z
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private static final int MAX_SLEEPS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
static final jdk.internal.misc.JavaNioAccess$BufferPool BUFFER_POOL;
descriptor: Ljdk/internal/misc/JavaNioAccess$BufferPool;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int JNI_COPY_TO_ARRAY_THRESHOLD;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final int JNI_COPY_FROM_ARRAY_THRESHOLD;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
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 Ljava/nio/Bits;
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 java.nio.Bits.$assertionsDisabled:Z
3: invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
putstatic java.nio.Bits.UNSAFE:Ljdk/internal/misc/Unsafe;
4: iconst_m1
putstatic java.nio.Bits.PAGE_SIZE:I
5: getstatic java.nio.Bits.UNSAFE:Ljdk/internal/misc/Unsafe;
invokevirtual jdk.internal.misc.Unsafe.unalignedAccess:()Z
putstatic java.nio.Bits.UNALIGNED:Z
6: invokestatic jdk.internal.misc.VM.maxDirectMemory:()J
putstatic java.nio.Bits.MAX_MEMORY:J
7: new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putstatic java.nio.Bits.RESERVED_MEMORY:Ljava/util/concurrent/atomic/AtomicLong;
8: new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putstatic java.nio.Bits.TOTAL_CAPACITY:Ljava/util/concurrent/atomic/AtomicLong;
9: new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putstatic java.nio.Bits.COUNT:Ljava/util/concurrent/atomic/AtomicLong;
10: new java.nio.Bits$1
dup
invokespecial java.nio.Bits$1.<init>:()V
putstatic java.nio.Bits.BUFFER_POOL:Ljdk/internal/misc/JavaNioAccess$BufferPool;
11: 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 Ljava/nio/Bits;
static short swap(short);
descriptor: (S)S
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
invokestatic java.lang.Short.reverseBytes:(S)S
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x S
MethodParameters:
Name Flags
x
static char swap(char);
descriptor: (C)C
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
invokestatic java.lang.Character.reverseBytes:(C)C
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x C
MethodParameters:
Name Flags
x
static int swap(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
invokestatic java.lang.Integer.reverseBytes:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x I
MethodParameters:
Name Flags
x
static long swap(long);
descriptor: (J)J
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: lload 0
invokestatic java.lang.Long.reverseBytes:(J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x J
MethodParameters:
Name Flags
x
static int pageSize();
descriptor: ()I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic java.nio.Bits.PAGE_SIZE:I
iconst_m1
if_icmpne 2
1: getstatic java.nio.Bits.UNSAFE:Ljdk/internal/misc/Unsafe;
invokevirtual jdk.internal.misc.Unsafe.pageSize:()I
putstatic java.nio.Bits.PAGE_SIZE:I
2: StackMap locals:
StackMap stack:
getstatic java.nio.Bits.PAGE_SIZE:I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static int pageCount(long);
descriptor: (J)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
invokestatic java.nio.Bits.pageSize:()I
i2l
ladd
lconst_1
lsub
l2i
invokestatic java.nio.Bits.pageSize:()I
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 size J
MethodParameters:
Name Flags
size
static boolean unaligned();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic java.nio.Bits.UNALIGNED:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static void reserveMemory(long, int);
descriptor: (JI)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=10, args_size=2
start local 0 start local 2 0: getstatic java.nio.Bits.MEMORY_LIMIT_SET:Z
ifne 3
invokestatic jdk.internal.misc.VM.initLevel:()I
iconst_1
if_icmplt 3
1: invokestatic jdk.internal.misc.VM.maxDirectMemory:()J
putstatic java.nio.Bits.MAX_MEMORY:J
2: iconst_1
putstatic java.nio.Bits.MEMORY_LIMIT_SET:Z
3: StackMap locals:
StackMap stack:
lload 0
iload 2
invokestatic java.nio.Bits.tryReserveMemory:(JI)Z
ifeq 5
4: return
5: StackMap locals:
StackMap stack:
invokestatic jdk.internal.misc.SharedSecrets.getJavaLangRefAccess:()Ljdk/internal/misc/JavaLangRefAccess;
astore 3
start local 3 6: iconst_0
istore 4
start local 4 7: StackMap locals: jdk.internal.misc.JavaLangRefAccess int
StackMap stack:
aload 3
invokeinterface jdk.internal.misc.JavaLangRefAccess.waitForReferenceProcessing:()Z
istore 5
start local 5 8: goto 12
end local 5 StackMap locals:
StackMap stack: java.lang.InterruptedException
9: pop
10: iconst_1
istore 4
11: iconst_1
istore 5
start local 5 12: StackMap locals: int
StackMap stack:
lload 0
iload 2
invokestatic java.nio.Bits.tryReserveMemory:(JI)Z
ifeq 16
13: iload 4
ifeq 15
14: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
15: StackMap locals:
StackMap stack:
return
16: StackMap locals:
StackMap stack:
iload 5
ifne 7
17: invokestatic java.lang.System.gc:()V
18: lconst_1
lstore 6
start local 6 19: iconst_0
istore 8
start local 8 20: StackMap locals: long int
StackMap stack:
lload 0
iload 2
invokestatic java.nio.Bits.tryReserveMemory:(JI)Z
ifeq 24
21: iload 4
ifeq 23
22: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
23: StackMap locals:
StackMap stack:
return
24: StackMap locals:
StackMap stack:
iload 8
bipush 9
if_icmplt 26
25: goto 34
26: StackMap locals:
StackMap stack:
aload 3
invokeinterface jdk.internal.misc.JavaLangRefAccess.waitForReferenceProcessing:()Z
ifne 20
27: lload 6
invokestatic java.lang.Thread.sleep:(J)V
28: lload 6
iconst_1
lshl
lstore 6
29: iinc 8 1
30: goto 20
StackMap locals:
StackMap stack: java.lang.InterruptedException
31: pop
32: iconst_1
istore 4
33: goto 20
34: StackMap locals:
StackMap stack:
new java.lang.OutOfMemoryError
dup
ldc "Direct buffer memory"
invokespecial java.lang.OutOfMemoryError.<init>:(Ljava/lang/String;)V
athrow
end local 8 end local 6 end local 5 35: StackMap locals: long int jdk.internal.misc.JavaLangRefAccess int
StackMap stack: java.lang.Throwable
astore 9
36: iload 4
ifeq 38
37: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
38: StackMap locals: long int jdk.internal.misc.JavaLangRefAccess int top top top top java.lang.Throwable
StackMap stack:
aload 9
athrow
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 size J
0 39 2 cap I
6 39 3 jlra Ljdk/internal/misc/JavaLangRefAccess;
7 39 4 interrupted Z
8 9 5 refprocActive Z
12 35 5 refprocActive Z
19 35 6 sleepTime J
20 35 8 sleeps I
Exception table:
from to target type
7 8 9 Class java.lang.InterruptedException
26 30 31 Class java.lang.InterruptedException
7 13 35 any
16 21 35 any
24 35 35 any
MethodParameters:
Name Flags
size
cap
private static boolean tryReserveMemory(long, int);
descriptor: (JI)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=5, args_size=2
start local 0 start local 2 0: goto 5
start local 3 1: StackMap locals: long
StackMap stack:
getstatic java.nio.Bits.TOTAL_CAPACITY:Ljava/util/concurrent/atomic/AtomicLong;
lload 3
lload 3
iload 2
i2l
ladd
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 5
2: getstatic java.nio.Bits.RESERVED_MEMORY:Ljava/util/concurrent/atomic/AtomicLong;
lload 0
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
3: getstatic java.nio.Bits.COUNT:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
4: iconst_1
ireturn
end local 3 5: StackMap locals:
StackMap stack:
iload 2
i2l
getstatic java.nio.Bits.MAX_MEMORY:J
getstatic java.nio.Bits.TOTAL_CAPACITY:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
dup2
lstore 3
start local 3 6: lsub
lcmp
ifle 1
7: iconst_0
ireturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 size J
0 8 2 cap I
1 5 3 totalCap J
6 8 3 totalCap J
MethodParameters:
Name Flags
size
cap
static void unreserveMemory(long, int);
descriptor: (JI)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 2 0: getstatic java.nio.Bits.COUNT:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
lstore 3
start local 3 1: getstatic java.nio.Bits.RESERVED_MEMORY:Ljava/util/concurrent/atomic/AtomicLong;
lload 0
lneg
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
lstore 5
start local 5 2: getstatic java.nio.Bits.TOTAL_CAPACITY:Ljava/util/concurrent/atomic/AtomicLong;
iload 2
ineg
i2l
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
lstore 7
start local 7 3: getstatic java.nio.Bits.$assertionsDisabled:Z
ifne 5
lload 3
lconst_0
lcmp
iflt 4
lload 5
lconst_0
lcmp
iflt 4
lload 7
lconst_0
lcmp
ifge 5
StackMap locals: long long long
StackMap stack:
4: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
return
end local 7 end local 5 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 size J
0 6 2 cap I
1 6 3 cnt J
2 6 5 reservedMem J
3 6 7 totalCap J
MethodParameters:
Name Flags
size
cap
}
SourceFile: "Bits.java"
NestMembers:
java.nio.Bits$1
InnerClasses:
java.nio.Bits$1
public abstract BufferPool = jdk.internal.misc.JavaNioAccess$BufferPool of jdk.internal.misc.JavaNioAccess