public abstract class org.terracotta.offheapstore.AbstractOffHeapClockCache<K, V> extends org.terracotta.offheapstore.AbstractLockedOffHeapHashMap<K, V> implements org.terracotta.offheapstore.pinning.PinnableCache<K, V>, org.terracotta.offheapstore.pinning.PinnableSegment<K, V>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.terracotta.offheapstore.AbstractOffHeapClockCache
super_class: org.terracotta.offheapstore.AbstractLockedOffHeapHashMap
{
private static final org.slf4j.Logger LOGGER;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int PRESENT_CLOCK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
private final java.util.Random rndm;
descriptor: Ljava/util/Random;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int clockHand;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/terracotta/offheapstore/AbstractOffHeapClockCache;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.terracotta.offheapstore.AbstractOffHeapClockCache.LOGGER:Lorg/slf4j/Logger;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.terracotta.offheapstore.paging.PageSource, org.terracotta.offheapstore.storage.StorageEngine<? super K, ? super V>);
descriptor: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;)V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 source Lorg/terracotta/offheapstore/paging/PageSource;
0 3 2 storageEngine Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;
Signature: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;)V
MethodParameters:
Name Flags
source
storageEngine
public void <init>(org.terracotta.offheapstore.paging.PageSource, boolean, org.terracotta.offheapstore.storage.StorageEngine<? super K, ? super V>);
descriptor: (Lorg/terracotta/offheapstore/paging/PageSource;ZLorg/terracotta/offheapstore/storage/StorageEngine;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
aload 3
invokespecial org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;ZLorg/terracotta/offheapstore/storage/StorageEngine;)V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 source Lorg/terracotta/offheapstore/paging/PageSource;
0 3 2 tableAllocationsSteal Z
0 3 3 storageEngine Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;
Signature: (Lorg/terracotta/offheapstore/paging/PageSource;ZLorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;)V
MethodParameters:
Name Flags
source
tableAllocationsSteal
storageEngine
public void <init>(org.terracotta.offheapstore.paging.PageSource, org.terracotta.offheapstore.storage.StorageEngine<? super K, ? super V>, );
descriptor: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
invokespecial org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;Z)V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 source Lorg/terracotta/offheapstore/paging/PageSource;
0 3 2 storageEngine Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;
0 3 3 bootstrap Z
Signature: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;Z)V
MethodParameters:
Name Flags
source
storageEngine
bootstrap
public void <init>(org.terracotta.offheapstore.paging.PageSource, org.terracotta.offheapstore.storage.StorageEngine<? super K, ? super V>, );
descriptor: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
invokespecial org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;I)V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 source Lorg/terracotta/offheapstore/paging/PageSource;
0 3 2 storageEngine Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;
0 3 3 tableSize I
Signature: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;I)V
MethodParameters:
Name Flags
source
storageEngine
tableSize
public void <init>(org.terracotta.offheapstore.paging.PageSource, boolean, org.terracotta.offheapstore.storage.StorageEngine<? super K, ? super V>, );
descriptor: (Lorg/terracotta/offheapstore/paging/PageSource;ZLorg/terracotta/offheapstore/storage/StorageEngine;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
iload 4
invokespecial org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;ZLorg/terracotta/offheapstore/storage/StorageEngine;I)V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 source Lorg/terracotta/offheapstore/paging/PageSource;
0 3 2 tableAllocationsSteal Z
0 3 3 storageEngine Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;
0 3 4 tableSize I
Signature: (Lorg/terracotta/offheapstore/paging/PageSource;ZLorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;I)V
MethodParameters:
Name Flags
source
tableAllocationsSteal
storageEngine
tableSize
public void <init>(org.terracotta.offheapstore.paging.PageSource, org.terracotta.offheapstore.storage.StorageEngine<? super K, ? super V>, int, );
descriptor: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
iload 3
iload 4
invokespecial org.terracotta.offheapstore.AbstractLockedOffHeapHashMap.<init>:(Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine;IZ)V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 source Lorg/terracotta/offheapstore/paging/PageSource;
0 3 2 storageEngine Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;
0 3 3 tableSize I
0 3 4 bootstrap Z
Signature: (Lorg/terracotta/offheapstore/paging/PageSource;Lorg/terracotta/offheapstore/storage/StorageEngine<-TK;-TV;>;IZ)V
MethodParameters:
Name Flags
source
storageEngine
tableSize
bootstrap
protected void storageEngineFailure(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.isEmpty:()Z
ifeq 2
1: new org.terracotta.offheapstore.exceptions.OversizeMappingException
dup
new java.lang.StringBuilder
dup
ldc "Storage Engine and Eviction Failed - Empty Map\nStorage Engine : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.storageEngine:Lorg/terracotta/offheapstore/storage/StorageEngine;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.terracotta.offheapstore.exceptions.OversizeMappingException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getEvictionIndex:()I
istore 2
start local 2 3: iload 2
ifge 5
4: new org.terracotta.offheapstore.exceptions.OversizeMappingException
dup
new java.lang.StringBuilder
dup
ldc "Storage Engine and Eviction Failed - Everything Pinned ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getSize:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " mappings) \n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "Storage Engine : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.storageEngine:Lorg/terracotta/offheapstore/storage/StorageEngine;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.terracotta.offheapstore.exceptions.OversizeMappingException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int
StackMap stack:
aload 0
iload 2
iconst_0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evict:(IZ)Z
pop
end local 2 6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 7 1 failure Ljava/lang/Object;
3 6 2 evictionIndex I
MethodParameters:
Name Flags
failure
protected void tableExpansionFailure(int, int);
descriptor: (II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getEvictionIndex:(II)I
istore 3
start local 3 1: iload 3
ifge 11
2: aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.tryIncreaseReprobe:()Z
ifeq 5
3: getstatic org.terracotta.offheapstore.AbstractOffHeapClockCache.LOGGER:Lorg/slf4j/Logger;
ldc "Increased reprobe to {} slots for a {} slot table in a last ditch attempt to avoid storage failure."
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getReprobeLength:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getTableCapacity:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
4: goto 12
5: StackMap locals: int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Table Expansion and Eviction Failed.\nCurrent Table Size (slots) : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getTableCapacity:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
6: ldc "Current Reprobe Length : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getReprobeLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
7: ldc "Resize Will Require : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getTableCapacity:()J
ldc 4
lmul
ldc 4
lmul
ldc 2
lmul
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "B\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc "Table Page Source : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.tableSource:Lorg/terracotta/offheapstore/paging/PageSource;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 10: new org.terracotta.offheapstore.exceptions.OversizeMappingException
dup
aload 4
invokespecial org.terracotta.offheapstore.exceptions.OversizeMappingException.<init>:(Ljava/lang/String;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
aload 0
iload 3
iconst_0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evict:(IZ)Z
pop
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 13 1 start I
0 13 2 length I
1 13 3 evictionIndex I
10 11 4 msg Ljava/lang/String;
MethodParameters:
Name Flags
start
length
protected void hit(java.nio.IntBuffer);
descriptor: (Ljava/nio/IntBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
ldc -2147483648
aload 1
iconst_0
invokevirtual java.nio.IntBuffer.get:(I)I
ior
invokevirtual java.nio.IntBuffer.put:(II)Ljava/nio/IntBuffer;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 2 1 entry Ljava/nio/IntBuffer;
MethodParameters:
Name Flags
entry
public int getEvictionIndex();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
invokevirtual java.nio.IntBuffer.capacity:()I
if_icmplt 2
1: aload 0
iconst_0
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
2: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
istore 1
start local 1 3: iconst_0
istore 2
start local 2 4: StackMap locals: int int
StackMap stack:
aload 0
dup
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
iconst_4
iadd
dup_x1
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
iconst_0
iadd
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
invokevirtual java.nio.IntBuffer.capacity:()I
if_icmplt 6
5: aload 0
iconst_0
putfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
6: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
iconst_0
iadd
invokevirtual java.nio.IntBuffer.get:(I)I
istore 3
start local 3 7: aload 0
iload 3
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evictable:(I)Z
ifeq 9
iload 3
ldc -2147483648
iand
ifne 9
8: aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
ireturn
9: StackMap locals: int
StackMap stack:
iload 3
ldc -2147483648
iand
ldc -2147483648
if_icmpne 11
10: aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
iconst_0
iadd
iload 3
ldc 2147483647
iand
invokevirtual java.nio.IntBuffer.put:(II)Ljava/nio/IntBuffer;
pop
11: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.clockHand:I
if_icmpne 4
iinc 2 1
iload 2
iconst_2
if_icmpne 4
12: iconst_m1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
3 13 1 initialHand I
4 13 2 loops I
7 13 3 hand I
private int getEvictionIndex(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getEvictionIndex:()I
istore 3
start local 3 1: aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
invokevirtual java.nio.IntBuffer.capacity:()I
istore 4
start local 4 2: iload 2
iconst_4
imul
istore 5
start local 5 3: iload 5
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
invokevirtual java.nio.IntBuffer.capacity:()I
if_icmplt 5
4: iload 3
ireturn
5: StackMap locals: int int int
StackMap stack:
iload 1
iload 5
iadd
iload 4
iconst_1
isub
iand
istore 6
start local 6 6: iload 3
ifge 8
7: iload 3
ireturn
8: StackMap locals: int
StackMap stack:
iload 6
iload 1
if_icmple 10
iload 3
iload 1
if_icmplt 10
iload 3
iload 6
if_icmpgt 10
9: iload 3
ireturn
10: StackMap locals:
StackMap stack:
iload 6
iload 1
if_icmpge 12
iload 3
iload 1
if_icmpge 11
iload 3
iload 6
if_icmpge 12
11: StackMap locals:
StackMap stack:
iload 3
ireturn
12: StackMap locals:
StackMap stack:
aload 0
iload 3
iconst_0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evict:(IZ)Z
pop
13: iconst_0
istore 7
start local 7 14: iload 1
istore 8
start local 8 15: goto 22
16: StackMap locals: int int
StackMap stack:
iinc 8 4
iload 8
iload 4
if_icmplt 18
17: iload 1
istore 8
18: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
iload 8
iconst_0
iadd
invokevirtual java.nio.IntBuffer.get:(I)I
istore 9
start local 9 19: aload 0
iload 9
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evictable:(I)Z
ifeq 21
iload 9
ldc -2147483648
iand
ifne 21
20: iload 8
ireturn
end local 9 21: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
iload 2
if_icmplt 16
end local 8 end local 7 23: iconst_m1
istore 7
start local 7 24: iconst_0
istore 8
start local 8 25: iload 1
istore 9
start local 9 26: goto 33
27: StackMap locals: int
StackMap stack:
iinc 9 4
iload 9
iload 4
if_icmplt 29
28: iload 1
istore 9
29: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
iload 9
iconst_0
iadd
invokevirtual java.nio.IntBuffer.get:(I)I
istore 10
start local 10 30: aload 0
iload 10
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evictable:(I)Z
ifeq 32
31: iload 9
istore 7
end local 10 32: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
33: iload 8
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.rndm:Ljava/util/Random;
iload 2
invokevirtual java.util.Random.nextInt:(I)I
if_icmplt 27
iload 7
ifge 34
iload 8
iload 2
if_icmplt 27
end local 9 end local 8 34: StackMap locals:
StackMap stack:
iload 7
ireturn
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 35 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 35 1 start I
0 35 2 length I
1 35 3 index I
2 35 4 tableLength I
3 35 5 probeLength I
6 35 6 end I
14 23 7 i I
15 23 8 clock I
19 21 9 hand I
24 35 7 lastEvictable I
25 34 8 i I
26 34 9 clock I
30 32 10 hand I
MethodParameters:
Name Flags
start
length
protected boolean evictable(int);
descriptor: (I)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
iand
iconst_1
if_icmpne 1
iload 1
ldc 1073741824
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 2 1 status I
MethodParameters:
Name Flags
status
public boolean evict(int, boolean);
descriptor: (IZ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.writeLock:()Ljava/util/concurrent/locks/Lock;
astore 3
start local 3 1: aload 3
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
aload 0
getfield org.terracotta.offheapstore.AbstractOffHeapClockCache.hashtable:Ljava/nio/IntBuffer;
iload 1
iconst_0
iadd
invokevirtual java.nio.IntBuffer.get:(I)I
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.evictable:(I)Z
ifeq 6
3: aload 0
iload 1
iload 2
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.removeAtTableOffset:(IZ)V
4: aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
5: iconst_1
ireturn
6: StackMap locals: java.util.concurrent.locks.Lock
StackMap stack:
aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
9: aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 11 1 index I
0 11 2 shrink Z
1 11 3 l Ljava/util/concurrent/locks/Lock;
Exception table:
from to target type
2 4 8 any
MethodParameters:
Name Flags
index
shrink
public boolean isPinned(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc 1073741824
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getMetadata:(Ljava/lang/Object;I)Ljava/lang/Integer;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual java.lang.Integer.intValue:()I
ifeq 2
iconst_1
ireturn
StackMap locals: java.lang.Integer
StackMap stack:
2: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 3 1 key Ljava/lang/Object;
1 3 2 metadata Ljava/lang/Integer;
MethodParameters:
Name Flags
key
public void setPinning(K, );
descriptor: (Ljava/lang/Object;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 3
1: aload 0
aload 1
ldc 1073741824
ldc 1073741824
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getAndSetMetadata:(Ljava/lang/Object;II)Ljava/lang/Integer;
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc 1073741824
iconst_0
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getAndSetMetadata:(Ljava/lang/Object;II)Ljava/lang/Integer;
pop
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 5 1 key TK;
0 5 2 pinned Z
Signature: (TK;Z)V
MethodParameters:
Name Flags
key
pinned
public V putPinned(K, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
ldc 1073741824
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.put:(Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 1 1 key TK;
0 1 2 value TV;
Signature: (TK;TV;)TV;
MethodParameters:
Name Flags
key
value
public V getAndPin();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc 1073741824
ldc 1073741824
invokevirtual org.terracotta.offheapstore.AbstractOffHeapClockCache.getValueAndSetMetadata:(Ljava/lang/Object;II)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/terracotta/offheapstore/AbstractOffHeapClockCache<TK;TV;>;
0 1 1 key TK;
Signature: (TK;)TV;
MethodParameters:
Name Flags
key
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Lorg/terracotta/offheapstore/AbstractLockedOffHeapHashMap<TK;TV;>;Lorg/terracotta/offheapstore/pinning/PinnableCache<TK;TV;>;Lorg/terracotta/offheapstore/pinning/PinnableSegment<TK;TV;>;
SourceFile: "AbstractOffHeapClockCache.java"