class jdk.internal.jimage.ImageBufferCache
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.jimage.ImageBufferCache
super_class: java.lang.Object
{
private static final int MAX_CACHED_BUFFERS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int LARGE_BUFFER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final java.lang.ThreadLocal<jdk.internal.jimage.ImageBufferCache$BufferReference[]> CACHE;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<[Ljdk/internal/jimage/ImageBufferCache$BufferReference;>;
private static java.util.Comparator<jdk.internal.jimage.ImageBufferCache$BufferReference> DECREASING_CAPACITY_NULLS_LAST;
descriptor: Ljava/util/Comparator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Comparator<Ljdk/internal/jimage/ImageBufferCache$BufferReference;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new jdk.internal.jimage.ImageBufferCache$1
dup
invokespecial jdk.internal.jimage.ImageBufferCache$1.<init>:()V
1: putstatic jdk.internal.jimage.ImageBufferCache.CACHE:Ljava/lang/ThreadLocal;
2: new jdk.internal.jimage.ImageBufferCache$2
dup
invokespecial jdk.internal.jimage.ImageBufferCache$2.<init>:()V
3: putstatic jdk.internal.jimage.ImageBufferCache.DECREASING_CAPACITY_NULLS_LAST:Ljava/util/Comparator;
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
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 Ljdk/internal/jimage/ImageBufferCache;
private static java.nio.ByteBuffer allocateBuffer(long);
descriptor: (J)Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 4095
ladd
ldc -4096
land
l2i
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 size J
MethodParameters:
Name Flags
size
static java.nio.ByteBuffer getBuffer(long);
descriptor: (J)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: lload 0
lconst_0
lcmp
iflt 1
ldc 2147483647
lload 0
lcmp
ifge 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
ldc "size"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: lload 0
ldc 65536
lcmp
ifle 6
4: lload 0
invokestatic jdk.internal.jimage.ImageBufferCache.allocateBuffer:(J)Ljava/nio/ByteBuffer;
astore 2
5: goto 21
6: StackMap locals: java.nio.ByteBuffer
StackMap stack:
getstatic jdk.internal.jimage.ImageBufferCache.CACHE:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast jdk.internal.jimage.ImageBufferCache$BufferReference[]
astore 3
start local 3 7: iconst_2
istore 4
start local 4 8: goto 18
9: StackMap locals: jdk.internal.jimage.ImageBufferCache$BufferReference[] int
StackMap stack:
aload 3
iload 4
aaload
astore 5
start local 5 10: aload 5
ifnull 17
11: aload 5
invokevirtual jdk.internal.jimage.ImageBufferCache$BufferReference.get:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 6
start local 6 12: aload 6
ifnull 17
lload 0
aload 6
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
lcmp
ifgt 17
13: aload 3
iload 4
aconst_null
aastore
14: aload 6
astore 2
15: aload 2
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
pop
16: goto 19
end local 6 end local 5 17: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
18: iload 4
ifge 9
end local 4 19: StackMap locals:
StackMap stack:
aload 2
ifnonnull 21
20: lload 0
invokestatic jdk.internal.jimage.ImageBufferCache.allocateBuffer:(J)Ljava/nio/ByteBuffer;
astore 2
end local 3 21: StackMap locals:
StackMap stack:
aload 2
lload 0
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
22: aload 2
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 size J
3 23 2 result Ljava/nio/ByteBuffer;
7 21 3 cache [Ljdk/internal/jimage/ImageBufferCache$BufferReference;
8 19 4 i I
10 17 5 reference Ljdk/internal/jimage/ImageBufferCache$BufferReference;
12 17 6 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
size
static void releaseBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.nio.ByteBuffer.capacity:()I
ldc 65536
if_icmple 2
1: return
2: StackMap locals:
StackMap stack:
getstatic jdk.internal.jimage.ImageBufferCache.CACHE:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast jdk.internal.jimage.ImageBufferCache$BufferReference[]
astore 1
start local 1 3: iconst_0
istore 2
start local 2 4: goto 9
5: StackMap locals: jdk.internal.jimage.ImageBufferCache$BufferReference[] int
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 6: aload 3
ifnull 8
aload 3
invokevirtual jdk.internal.jimage.ImageBufferCache$BufferReference.get:()Ljava/lang/Object;
ifnonnull 8
7: aload 1
iload 2
aconst_null
aastore
end local 3 8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
iconst_3
if_icmplt 5
end local 2 10: aload 1
iconst_3
new jdk.internal.jimage.ImageBufferCache$BufferReference
dup
aload 0
invokespecial jdk.internal.jimage.ImageBufferCache$BufferReference.<init>:(Ljava/nio/ByteBuffer;)V
aastore
11: aload 1
getstatic jdk.internal.jimage.ImageBufferCache.DECREASING_CAPACITY_NULLS_LAST:Ljava/util/Comparator;
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
12: aload 1
iconst_3
aconst_null
aastore
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 buffer Ljava/nio/ByteBuffer;
3 14 1 cache [Ljdk/internal/jimage/ImageBufferCache$BufferReference;
4 10 2 i I
6 8 3 reference Ljdk/internal/jimage/ImageBufferCache$BufferReference;
MethodParameters:
Name Flags
buffer
}
SourceFile: "ImageBufferCache.java"
NestMembers:
jdk.internal.jimage.ImageBufferCache$1 jdk.internal.jimage.ImageBufferCache$2 jdk.internal.jimage.ImageBufferCache$BufferReference
InnerClasses:
jdk.internal.jimage.ImageBufferCache$1
jdk.internal.jimage.ImageBufferCache$2
private BufferReference = jdk.internal.jimage.ImageBufferCache$BufferReference of jdk.internal.jimage.ImageBufferCache