public class org.terracotta.offheapstore.paging.OffHeapStorageArea
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.terracotta.offheapstore.paging.OffHeapStorageArea
super_class: java.lang.Object
{
private static final org.slf4j.Logger LOGGER;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean VALIDATING;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long LARGEST_POWER_OF_TWO;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.nio.ByteBuffer[] EMPTY_BUFFER_ARRAY;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int initialPageSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maximalPageSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int pageGrowthAreaSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float compressThreshold;
descriptor: F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner owner;
descriptor: Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.terracotta.offheapstore.paging.PageSource pageSource;
descriptor: Lorg/terracotta/offheapstore/paging/PageSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.terracotta.offheapstore.storage.allocator.Allocator allocator;
descriptor: Lorg/terracotta/offheapstore/storage/allocator/Allocator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.Deque<java.util.Collection<org.terracotta.offheapstore.paging.Page>> released;
descriptor: Ljava/util/Deque;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Deque<Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;>;
private final java.util.Map<java.lang.Integer, org.terracotta.offheapstore.paging.Page> pages;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Lorg/terracotta/offheapstore/paging/Page;>;
private final boolean thief;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean victim;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$org$terracotta$offheapstore$storage$PointerSize;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LOGGER:Lorg/slf4j/Logger;
1: ldc Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
invokestatic org.terracotta.offheapstore.util.Validation.shouldValidate:(Ljava/lang/Class;)Z
putstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.VALIDATING:Z
2: ldc 2147483647
invokestatic java.lang.Integer.highestOneBit:(I)I
i2l
putstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LARGEST_POWER_OF_TWO:J
3: iconst_0
anewarray java.nio.ByteBuffer
putstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.EMPTY_BUFFER_ARRAY:[Ljava/nio/ByteBuffer;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.terracotta.offheapstore.storage.PointerSize, org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner, org.terracotta.offheapstore.paging.PageSource, int, boolean, boolean);
descriptor: (Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
aload 3
iload 4
iload 4
iload 5
iload 6
invokespecial org.terracotta.offheapstore.paging.OffHeapStorageArea.<init>:(Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IIZZ)V
1: return
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 2 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 2 1 width Lorg/terracotta/offheapstore/storage/PointerSize;
0 2 2 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
0 2 3 pageSource Lorg/terracotta/offheapstore/paging/PageSource;
0 2 4 pageSize I
0 2 5 thief Z
0 2 6 victim Z
MethodParameters:
Name Flags
width
owner
pageSource
pageSize
thief
victim
public void <init>(org.terracotta.offheapstore.storage.PointerSize, org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner, org.terracotta.offheapstore.paging.PageSource, int, boolean, boolean, float);
descriptor: (Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IZZF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
aload 2
aload 3
iload 4
iload 4
iload 5
iload 6
fload 7
invokespecial org.terracotta.offheapstore.paging.OffHeapStorageArea.<init>:(Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IIZZF)V
1: return
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 2 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 2 1 width Lorg/terracotta/offheapstore/storage/PointerSize;
0 2 2 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
0 2 3 pageSource Lorg/terracotta/offheapstore/paging/PageSource;
0 2 4 pageSize I
0 2 5 thief Z
0 2 6 victim Z
0 2 7 compressThreshold F
MethodParameters:
Name Flags
width
owner
pageSource
pageSize
thief
victim
compressThreshold
public void <init>(org.terracotta.offheapstore.storage.PointerSize, org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner, org.terracotta.offheapstore.paging.PageSource, int, int, boolean, boolean);
descriptor: (Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IIZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
aload 2
aload 3
iload 4
iload 5
iload 6
iload 7
fconst_0
invokespecial org.terracotta.offheapstore.paging.OffHeapStorageArea.<init>:(Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IIZZF)V
1: return
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 2 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 2 1 width Lorg/terracotta/offheapstore/storage/PointerSize;
0 2 2 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
0 2 3 pageSource Lorg/terracotta/offheapstore/paging/PageSource;
0 2 4 initialPageSize I
0 2 5 maximalPageSize I
0 2 6 thief Z
0 2 7 victim Z
MethodParameters:
Name Flags
width
owner
pageSource
initialPageSize
maximalPageSize
thief
victim
public void <init>(org.terracotta.offheapstore.storage.PointerSize, org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner, org.terracotta.offheapstore.paging.PageSource, int, int, boolean, boolean, float);
descriptor: (Lorg/terracotta/offheapstore/storage/PointerSize;Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;Lorg/terracotta/offheapstore/paging/PageSource;IIZZF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.random:Ljava/util/Random;
2: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
iconst_1
ldc 0.75
iconst_1
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(IFI)V
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
4: iload 7
ifeq 6
iload 5
iload 4
if_icmpeq 6
5: new java.lang.IllegalArgumentException
dup
ldc "Variable page-size offheap storage areas cannot be victims as they do not support stealing."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.storage.PointerSize org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner org.terracotta.offheapstore.paging.PageSource int int int int float
StackMap stack:
aload 0
aload 2
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
7: aload 0
aload 3
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSource:Lorg/terracotta/offheapstore/paging/PageSource;
8: invokestatic org.terracotta.offheapstore.paging.OffHeapStorageArea.$SWITCH_TABLE$org$terracotta$offheapstore$storage$PointerSize:()[I
aload 1
invokevirtual org.terracotta.offheapstore.storage.PointerSize.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 9
2: 11
default: 13
}
9: StackMap locals:
StackMap stack:
aload 0
new org.terracotta.offheapstore.storage.allocator.IntegerBestFitAllocator
dup
aload 0
invokespecial org.terracotta.offheapstore.storage.allocator.IntegerBestFitAllocator.<init>:(Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;)V
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
10: goto 14
11: StackMap locals:
StackMap stack:
aload 0
new org.terracotta.offheapstore.storage.allocator.LongBestFitAllocator
dup
aload 0
invokespecial org.terracotta.offheapstore.storage.allocator.LongBestFitAllocator.<init>:(Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;)V
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
12: goto 14
13: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.getMinimalSize:()I
iload 4
invokestatic java.lang.Math.max:(II)I
istore 4
15: iload 4
invokestatic java.lang.Integer.bitCount:(I)I
iconst_1
if_icmpne 18
16: aload 0
getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LARGEST_POWER_OF_TWO:J
iload 4
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LARGEST_POWER_OF_TWO:J
iload 4
i2l
invokestatic java.lang.Long.highestOneBit:(J)J
iconst_1
lshl
invokestatic java.lang.Math.min:(JJ)J
l2i
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
19: StackMap locals:
StackMap stack:
iload 5
iload 4
if_icmpge 22
20: aload 0
iload 4
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
21: goto 26
StackMap locals:
StackMap stack:
22: iload 5
invokestatic java.lang.Integer.bitCount:(I)I
iconst_1
if_icmpne 25
23: aload 0
getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LARGEST_POWER_OF_TWO:J
iload 5
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
24: goto 26
25: StackMap locals:
StackMap stack:
aload 0
getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LARGEST_POWER_OF_TWO:J
iload 5
i2l
invokestatic java.lang.Long.highestOneBit:(J)J
iconst_1
lshl
invokestatic java.lang.Math.min:(JJ)J
l2i
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
26: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
isub
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
27: aload 0
fload 8
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.compressThreshold:F
28: aload 0
iload 6
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.thief:Z
29: aload 0
iload 7
putfield org.terracotta.offheapstore.paging.OffHeapStorageArea.victim:Z
30: return
end local 8 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 31 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 31 1 width Lorg/terracotta/offheapstore/storage/PointerSize;
0 31 2 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
0 31 3 pageSource Lorg/terracotta/offheapstore/paging/PageSource;
0 31 4 initialPageSize I
0 31 5 maximalPageSize I
0 31 6 thief Z
0 31 7 victim Z
0 31 8 compressThreshold F
MethodParameters:
Name Flags
width
owner
pageSource
initialPageSize
maximalPageSize
thief
victim
compressThreshold
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.clear:()V
1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 1
start local 1 2: goto 6
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 2
start local 2 4: aload 1
invokeinterface java.util.Iterator.remove:()V
5: aload 0
aload 2
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.freePage:(Lorg/terracotta/offheapstore/paging/Page;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 1 7: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
2 7 1 it Ljava/util/Iterator<Lorg/terracotta/offheapstore/paging/Page;>;
4 6 2 p Lorg/terracotta/offheapstore/paging/Page;
public byte readByte(long);
descriptor: (J)B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
start local 3 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
start local 4 2: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 4
invokevirtual java.nio.ByteBuffer.get:(I)B
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 3 1 address J
1 3 3 pageIndex I
2 3 4 pageAddress I
MethodParameters:
Name Flags
address
public short readShort(long);
descriptor: (J)S
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
start local 3 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
start local 4 2: aload 0
iload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 5
start local 5 3: iload 4
iconst_2
iadd
iload 5
if_icmpgt 5
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 4
invokevirtual java.nio.ByteBuffer.getShort:(I)S
ireturn
5: StackMap locals: int int int
StackMap stack:
iconst_0
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 14
8: StackMap locals: int int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 8
start local 8 9: iload 6
sipush 255
aload 8
iload 4
invokevirtual java.nio.ByteBuffer.get:(I)B
iand
bipush 8
iconst_1
iload 7
isub
imul
ishl
ior
i2s
istore 6
10: lload 1
lconst_1
ladd
lstore 1
11: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
12: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
end local 8 13: iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iconst_2
if_icmplt 8
end local 7 15: iload 6
ireturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 16 1 address J
1 16 3 pageIndex I
2 16 4 pageAddress I
3 16 5 pageSize I
6 16 6 value S
7 15 7 i I
9 13 8 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
public int readInt(long);
descriptor: (J)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
start local 3 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
start local 4 2: aload 0
iload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 5
start local 5 3: iload 4
iconst_4
iadd
iload 5
if_icmpgt 5
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 4
invokevirtual java.nio.ByteBuffer.getInt:(I)I
ireturn
5: StackMap locals: int int int
StackMap stack:
iconst_0
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 14
8: StackMap locals: int int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 8
start local 8 9: iload 6
sipush 255
aload 8
iload 4
invokevirtual java.nio.ByteBuffer.get:(I)B
iand
bipush 8
iconst_3
iload 7
isub
imul
ishl
ior
istore 6
10: lload 1
lconst_1
ladd
lstore 1
11: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
12: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
end local 8 13: iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iconst_4
if_icmplt 8
end local 7 15: iload 6
ireturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 16 1 address J
1 16 3 pageIndex I
2 16 4 pageAddress I
3 16 5 pageSize I
6 16 6 value I
7 15 7 i I
9 13 8 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
public long readLong(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
start local 3 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
start local 4 2: aload 0
iload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 5
start local 5 3: iload 4
bipush 8
iadd
iload 5
if_icmpgt 5
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 4
invokevirtual java.nio.ByteBuffer.getLong:(I)J
lreturn
5: StackMap locals: int int int
StackMap stack:
lconst_0
lstore 6
start local 6 6: iconst_0
istore 8
start local 8 7: goto 14
8: StackMap locals: long int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 9
start local 9 9: lload 6
ldc 255
aload 9
iload 4
invokevirtual java.nio.ByteBuffer.get:(I)B
i2l
land
bipush 8
bipush 7
iload 8
isub
imul
lshl
lor
lstore 6
10: lload 1
lconst_1
ladd
lstore 1
11: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
12: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 4
end local 9 13: iinc 8 1
StackMap locals:
StackMap stack:
14: iload 8
bipush 8
if_icmplt 8
end local 8 15: lload 6
lreturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 16 1 address J
1 16 3 pageIndex I
2 16 4 pageAddress I
3 16 5 pageSize I
6 16 6 value J
7 15 8 i I
9 13 9 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
public java.nio.ByteBuffer readBuffer(long, int);
descriptor: (JI)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
iload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.readBuffers:(JI)[Ljava/nio/ByteBuffer;
astore 4
start local 4 1: aload 4
arraylength
iconst_1
if_icmpne 3
2: aload 4
iconst_0
aaload
areturn
3: StackMap locals: java.nio.ByteBuffer[]
StackMap stack:
iload 3
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 5
start local 5 4: aload 4
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 8
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea long int java.nio.ByteBuffer[] java.nio.ByteBuffer top int int java.nio.ByteBuffer[]
StackMap stack:
5: aload 9
iload 7
aaload
astore 6
start local 6 6: aload 5
aload 6
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
end local 6 7: iinc 7 1
StackMap locals:
StackMap stack:
8: iload 7
iload 8
if_icmplt 5
9: aload 5
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
invokevirtual java.nio.ByteBuffer.asReadOnlyBuffer:()Ljava/nio/ByteBuffer;
areturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 10 1 address J
0 10 3 length I
1 10 4 buffers [Ljava/nio/ByteBuffer;
4 10 5 copy Ljava/nio/ByteBuffer;
6 7 6 b Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
length
public java.nio.ByteBuffer[] readBuffers(long, int);
descriptor: (JI)[Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
start local 4 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
start local 5 2: aload 0
iload 4
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 6
start local 6 3: iload 5
iload 3
iadd
iload 6
if_icmpgt 12
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 7
start local 7 5: aload 7
6: iload 5
iload 3
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
7: iload 5
invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
8: checkcast java.nio.ByteBuffer
9: invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.asReadOnlyBuffer:()Ljava/nio/ByteBuffer;
10: astore 8
start local 8 11: iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 8
aastore
areturn
end local 8 end local 7 12: StackMap locals: int int int
StackMap stack:
new java.util.ArrayList
dup
iload 3
iload 6
idiv
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 13: iload 3
istore 8
start local 8 14: goto 25
15: StackMap locals: java.util.List int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 9
start local 9 16: aload 9
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
17: aload 9
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 8
if_icmple 19
18: aload 9
aload 9
invokevirtual java.nio.ByteBuffer.position:()I
iload 8
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
19: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 9
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.asReadOnlyBuffer:()Ljava/nio/ByteBuffer;
astore 10
start local 10 20: lload 1
aload 10
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
lstore 1
21: iload 8
aload 10
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 8
22: aload 7
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
24: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
end local 10 end local 9 25: StackMap locals:
StackMap stack:
iload 8
ifgt 15
26: aload 7
getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.EMPTY_BUFFER_ARRAY:[Ljava/nio/ByteBuffer;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.nio.ByteBuffer[]
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 27 1 address J
0 27 3 length I
1 27 4 pageIndex I
2 27 5 pageAddress I
3 27 6 pageSize I
5 12 7 pageBuffer Ljava/nio/ByteBuffer;
11 12 8 buffer Ljava/nio/ByteBuffer;
13 27 7 buffers Ljava/util/List<Ljava/nio/ByteBuffer;>;
14 27 8 remaining I
16 25 9 pageBuffer Ljava/nio/ByteBuffer;
20 25 10 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
length
public void writeByte(long, byte);
descriptor: (JB)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
start local 4 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
start local 5 2: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 5
iload 3
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
3: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 4 1 address J
0 4 3 value B
1 4 4 pageIndex I
2 4 5 pageAddress I
MethodParameters:
Name Flags
address
value
public void writeShort(long, short);
descriptor: (JS)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
start local 4 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
start local 5 2: aload 0
iload 4
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 6
start local 6 3: iload 5
iconst_2
iadd
iload 6
if_icmpgt 6
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 5
iload 3
invokevirtual java.nio.ByteBuffer.putShort:(IS)Ljava/nio/ByteBuffer;
pop
5: goto 16
6: StackMap locals: int int int
StackMap stack:
iconst_0
istore 7
start local 7 7: goto 15
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 8
start local 8 9: aload 8
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: aload 8
iload 3
bipush 8
iconst_1
iload 7
isub
imul
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
11: lload 1
lconst_1
ladd
lstore 1
12: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
13: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
end local 8 14: iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iconst_2
if_icmplt 8
end local 7 16: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 17 1 address J
0 17 3 value S
1 17 4 pageIndex I
2 17 5 pageAddress I
3 17 6 pageSize I
7 16 7 i I
9 14 8 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
value
public void writeInt(long, int);
descriptor: (JI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
start local 4 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
start local 5 2: aload 0
iload 4
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 6
start local 6 3: iload 5
iconst_4
iadd
iload 6
if_icmpgt 6
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 5
iload 3
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
5: goto 16
6: StackMap locals: int int int
StackMap stack:
iconst_0
istore 7
start local 7 7: goto 15
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 8
start local 8 9: aload 8
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: aload 8
iload 3
bipush 8
iconst_3
iload 7
isub
imul
ishr
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
11: lload 1
lconst_1
ladd
lstore 1
12: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
13: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
end local 8 14: iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iconst_4
if_icmplt 8
end local 7 16: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 17 1 address J
0 17 3 value I
1 17 4 pageIndex I
2 17 5 pageAddress I
3 17 6 pageSize I
7 16 7 i I
9 14 8 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
value
public void writeLong(long, long);
descriptor: (JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 5
start local 5 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 6
start local 6 2: aload 0
iload 5
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 7
start local 7 3: iload 6
bipush 8
iadd
iload 7
if_icmpgt 6
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
iload 6
lload 3
invokevirtual java.nio.ByteBuffer.putLong:(IJ)Ljava/nio/ByteBuffer;
pop
5: goto 16
6: StackMap locals: int int int
StackMap stack:
iconst_0
istore 8
start local 8 7: goto 15
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 9
start local 9 9: aload 9
iload 6
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: aload 9
lload 3
bipush 8
bipush 7
iload 8
isub
imul
lshr
l2i
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
11: lload 1
lconst_1
ladd
lstore 1
12: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 5
13: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 6
end local 9 14: iinc 8 1
StackMap locals:
StackMap stack:
15: iload 8
bipush 8
if_icmplt 8
end local 8 16: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 17 1 address J
0 17 3 value J
1 17 5 pageIndex I
2 17 6 pageAddress I
3 17 7 pageSize I
7 16 8 i I
9 14 9 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
address
value
public void writeBuffer(long, java.nio.ByteBuffer);
descriptor: (JLjava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
start local 4 1: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
start local 5 2: aload 0
iload 4
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
istore 6
start local 6 3: iload 5
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
iload 6
if_icmpgt 25
4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 7
start local 7 5: aload 7
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
6: aload 7
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
end local 7 7: goto 26
8: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
astore 7
start local 7 9: aload 7
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 7
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmple 21
11: aload 3
invokevirtual java.nio.ByteBuffer.limit:()I
istore 8
start local 8 12: aload 3
aload 3
invokevirtual java.nio.ByteBuffer.position:()I
aload 7
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
13: lload 1
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
lstore 1
14: aload 7
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
15: goto 19
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea long java.nio.ByteBuffer int int int java.nio.ByteBuffer int
StackMap stack: java.lang.Throwable
16: astore 9
17: aload 3
iload 8
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
18: aload 9
athrow
19: StackMap locals:
StackMap stack:
aload 3
iload 8
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
end local 8 20: goto 23
21: StackMap locals:
StackMap stack:
lload 1
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
lstore 1
22: aload 7
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
23: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 4
24: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageAddressFor:(J)I
istore 5
end local 7 25: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 8
26: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 27 1 address J
0 27 3 data Ljava/nio/ByteBuffer;
1 27 4 pageIndex I
2 27 5 pageAddress I
3 27 6 pageSize I
5 7 7 buffer Ljava/nio/ByteBuffer;
9 25 7 buffer Ljava/nio/ByteBuffer;
12 20 8 originalLimit I
Exception table:
from to target type
12 16 16 any
MethodParameters:
Name Flags
address
data
public void writeBuffers(long, java.nio.ByteBuffer[]);
descriptor: (J[Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 3 0: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 6
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea long java.nio.ByteBuffer[] top int int java.nio.ByteBuffer[]
StackMap stack:
1: aload 7
iload 5
aaload
astore 4
start local 4 2: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 8
start local 8 3: aload 0
lload 1
aload 4
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.writeBuffer:(JLjava/nio/ByteBuffer;)V
4: lload 1
iload 8
i2l
ladd
lstore 1
end local 8 end local 4 5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 6
if_icmplt 1
7: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 8 1 address J
0 8 3 data [Ljava/nio/ByteBuffer;
2 5 4 buffer Ljava/nio/ByteBuffer;
3 5 8 length I
MethodParameters:
Name Flags
address
data
public void free(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
lload 1
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.free:(J)V
1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.compressThreshold:F
fconst_0
fcmpl
ifle 5
2: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.getOccupiedMemory:()J
l2f
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.getLastUsedAddress:()J
l2f
fdiv
fstore 3
start local 3 3: fload 3
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.compressThreshold:F
fcmpg
ifge 5
4: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.compress:()Z
pop
end local 3 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 6 1 address J
3 5 3 occupation F
MethodParameters:
Name Flags
address
private boolean compress();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.getLastUsedPointer:()J
lstore 1
start local 1 1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
lload 1
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.sizeOf:(J)I
istore 3
start local 3 2: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
iload 3
i2l
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.allocate:(J)J
lstore 4
start local 4 3: lload 4
lconst_0
lcmp
iflt 11
4: lload 4
lload 1
lcmp
ifge 9
5: aload 0
lload 4
aload 0
lload 1
iload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.readBuffers:(JI)[Ljava/nio/ByteBuffer;
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.writeBuffers:(J[Ljava/nio/ByteBuffer;)V
6: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
lload 1
lload 4
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.moved:(JJ)Z
ifeq 9
7: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
lload 1
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.free:(J)V
8: iconst_1
ireturn
9: StackMap locals: long int long
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
lload 4
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.free:(J)V
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
1 12 1 lastAddress J
2 12 3 sizeOfArea I
3 12 4 compressed J
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.clear:()V
1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 1
start local 1 2: goto 6
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 2
start local 2 4: aload 1
invokeinterface java.util.Iterator.remove:()V
5: aload 0
aload 2
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.freePage:(Lorg/terracotta/offheapstore/paging/Page;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 1 7: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
2 7 1 it Ljava/util/Iterator<Lorg/terracotta/offheapstore/paging/Page;>;
4 6 2 p Lorg/terracotta/offheapstore/paging/Page;
public long allocate(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
lload 1
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.allocate:(J)J
lstore 3
start local 3 1: lload 3
lconst_0
lcmp
iflt 3
2: lload 3
lreturn
3: StackMap locals: long
StackMap stack:
aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.expandData:()Z
ifne 0
4: ldc -1
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 5 1 size J
1 5 3 address J
MethodParameters:
Name Flags
size
private boolean expandData();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=1
start local 0 0: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.nextPageSize:()I
istore 1
start local 1 1: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.getAllocatedMemory:()J
iload 1
i2l
ladd
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.getMaximumAddress:()J
lcmp
ifle 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSource:Lorg/terracotta/offheapstore/paging/PageSource;
iload 1
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.thief:Z
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.victim:Z
aload 0
invokeinterface org.terracotta.offheapstore.paging.PageSource.allocate:(IZZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
astore 2
start local 2 4: aload 2
ifnonnull 8
5: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 7
6: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LOGGER:Lorg/slf4j/Logger;
ldc "Data area expansion from {} failed"
aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.getAllocatedMemory:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
7: StackMap locals: org.terracotta.offheapstore.paging.Page
StackMap stack:
iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 19
9: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
10: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
iload 1
i2l
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.expand:(J)V
11: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 18
12: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.getAllocatedMemory:()J
lstore 3
start local 3 13: lload 3
iload 1
i2l
ladd
lstore 5
start local 5 14: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LOGGER:Lorg/slf4j/Logger;
ldc "Data area expanded from {}B to {}B [occupation={}]"
iconst_3
anewarray java.lang.Object
dup
iconst_0
15: lload 3
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
dup
iconst_1
lload 5
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
dup
iconst_2
16: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.occupied:()J
l2f
lload 5
l2f
fdiv
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
aastore
17: invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 5 end local 3 18: StackMap locals:
StackMap stack:
iconst_1
ireturn
19: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.freePage:(Lorg/terracotta/offheapstore/paging/Page;)V
20: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
21: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
1 22 1 newPageSize I
4 22 2 newPage Lorg/terracotta/offheapstore/paging/Page;
13 18 3 before J
14 18 5 after J
public long getAllocatedMemory();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.addressForPage:(I)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
public long getOccupiedMemory();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.occupied:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "OffHeapStorageArea\n"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 17
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 2
iinc 2 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 3
start local 3 4: aload 3
ifnonnull 6
5: goto 18
6: StackMap locals: org.terracotta.offheapstore.paging.Page
StackMap stack:
aload 3
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
istore 4
start local 4 7: iconst_1
istore 5
start local 5 8: goto 13
9: StackMap locals: int int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 6
start local 6 10: aload 6
ifnull 14
aload 6
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
iload 4
if_icmpne 14
11: iinc 5 1
12: iinc 2 1
end local 6 13: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
if_icmplt 9
14: StackMap locals:
StackMap stack:
aload 1
ldc "\t"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "B page"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
iconst_1
if_icmpne 15
ldc "\n"
goto 16
StackMap locals:
StackMap stack: java.lang.StringBuilder
15: ldc "s\n"
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.lang.StringBuilder int org.terracotta.offheapstore.paging.Page int int
StackMap stack: java.lang.StringBuilder java.lang.String
16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 end local 4 end local 3 17: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
if_icmplt 3
end local 2 18: StackMap locals:
StackMap stack:
aload 1
ldc "Allocator: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
19: aload 1
ldc "Page Source: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSource:Lorg/terracotta/offheapstore/paging/PageSource;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
20: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
1 21 1 sb Ljava/lang/StringBuilder;
2 18 2 i I
4 17 3 p Lorg/terracotta/offheapstore/paging/Page;
7 17 4 size I
8 17 5 count I
10 13 6 q Lorg/terracotta/offheapstore/paging/Page;
private int pageIndexFor(long);
descriptor: (J)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
i2l
lcmp
ifle 2
1: lload 1
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
i2l
lsub
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
i2l
ldiv
aload 0
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
i2l
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
i2l
ladd
l2i
ireturn
2: StackMap locals:
StackMap stack:
bipush 64
lload 1
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
i2l
ldiv
lconst_1
ladd
invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
isub
iconst_1
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 3 1 address J
MethodParameters:
Name Flags
address
private long addressForPage(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
i2l
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
isub
istore 2
start local 2 1: iload 2
ifle 3
2: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
i2l
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
i2l
iload 2
i2l
lmul
ladd
lreturn
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
iload 1
ishl
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
isub
i2l
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 4 1 index I
1 4 2 postIndex I
MethodParameters:
Name Flags
index
private int pageAddressFor(long);
descriptor: (J)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.addressForPage:(I)J
lsub
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 1 1 address J
MethodParameters:
Name Flags
address
private int pageSizeFor(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageGrowthAreaSize:I
i2l
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
if_icmpge 2
1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.initialPageSize:I
iload 1
ishl
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.maximalPageSize:I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 3 1 index I
MethodParameters:
Name Flags
index
private int nextPageSize();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSizeFor:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
public void validateStorageArea();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.validateAllocator:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
public void release(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
istore 3
start local 3 1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iconst_1
isub
istore 4
start local 4 2: goto 7
3: StackMap locals: int int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 5
start local 5 4: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
aload 5
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
ineg
i2l
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.expand:(J)V
5: aload 0
aload 5
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.freePage:(Lorg/terracotta/offheapstore/paging/Page;)V
end local 5 6: iinc 4 -1
StackMap locals:
StackMap stack:
7: iload 4
iload 3
if_icmpgt 3
end local 4 8: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
9: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 10 1 address J
1 10 3 lastPage I
2 8 4 i I
4 6 5 p Lorg/terracotta/offheapstore/paging/Page;
MethodParameters:
Name Flags
address
private void freePage(org.terracotta.offheapstore.paging.Page);
descriptor: (Lorg/terracotta/offheapstore/paging/Page;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 3
1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pageSource:Lorg/terracotta/offheapstore/paging/PageSource;
aload 1
invokeinterface org.terracotta.offheapstore.paging.PageSource.free:(Lorg/terracotta/offheapstore/paging/Page;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast java.util.Collection
aload 1
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 5 1 p Lorg/terracotta/offheapstore/paging/Page;
MethodParameters:
Name Flags
p
public java.util.Collection<org.terracotta.offheapstore.paging.Page> release(java.util.Collection<org.terracotta.offheapstore.paging.Page>);
descriptor: (Ljava/util/Collection;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=13, args_size=2
start local 0 start local 1 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.writeLock:()Ljava/util/concurrent/locks/Lock;
astore 2
start local 2 1: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.thief:Z
ifne 2
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.isThief:()Z
ifeq 4
2: StackMap locals: java.util.concurrent.locks.Lock
StackMap stack:
aload 2
invokeinterface java.util.concurrent.locks.Lock.tryLock:()Z
ifne 5
3: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.concurrent.locks.Lock.lock:()V
5: StackMap locals:
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 3
start local 3 6: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 4
start local 4 7: goto 43
8: StackMap locals: java.util.Collection java.util.Collection
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.getLastUsedPointer:()J
lstore 5
start local 5 9: lload 5
lconst_0
lcmp
ifge 23
10: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iconst_1
isub
istore 7
start local 7 11: goto 20
12: StackMap locals: long int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 8
start local 8 13: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
aload 8
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
ineg
i2l
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.expand:(J)V
14: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 1
aload 8
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
ifeq 18
16: aload 3
aload 8
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
17: goto 19
18: StackMap locals: org.terracotta.offheapstore.paging.Page
StackMap stack:
aload 4
aload 8
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 8 19: StackMap locals:
StackMap stack:
iinc 7 -1
StackMap locals:
StackMap stack:
20: iload 7
ifge 12
end local 7 21: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
22: goto 44
23: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 24: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
aload 7
invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
25: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
lload 5
iconst_1
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.evictAtAddress:(JZ)Ljava/util/Collection;
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 26
aload 0
lload 5
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.moveAddressDown:(J)Z
ifeq 35
26: StackMap locals: java.util.Collection
StackMap stack:
aload 7
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 9
goto 32
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection long java.util.Collection top java.util.Iterator
StackMap stack:
27: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 8
start local 8 28: aload 1
aload 8
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
ifeq 31
29: aload 3
aload 8
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
30: goto 32
31: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection long java.util.Collection org.terracotta.offheapstore.paging.Page java.util.Iterator
StackMap stack:
aload 4
aload 8
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 8 32: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection long java.util.Collection top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
33: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
34: goto 42
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection long java.util.Collection
StackMap stack:
35: aload 7
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 38
36: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
pop
37: goto 44
38: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
40: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
pop
41: aload 10
athrow
42: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.released:Ljava/util/Deque;
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
pop
end local 7 end local 5 43: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Collection.size:()I
aload 1
invokeinterface java.util.Collection.size:()I
if_icmplt 8
44: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
start local 5 45: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 59
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection java.util.Iterator top java.util.Iterator
StackMap stack:
46: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 6
start local 6 47: aload 0
aload 6
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.getIndexForPage:(Lorg/terracotta/offheapstore/paging/Page;)I
istore 8
start local 8 48: iload 8
iflt 59
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 59
49: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 9
start local 9 50: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.VALIDATING:Z
ifeq 51
aload 9
aload 6
if_acmpne 51
iconst_0
goto 52
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection java.util.Iterator org.terracotta.offheapstore.paging.Page java.util.Iterator int org.terracotta.offheapstore.paging.Page
StackMap stack:
51: iconst_1
StackMap locals:
StackMap stack: int
52: invokestatic org.terracotta.offheapstore.util.Validation.validate:(Z)V
53: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.VALIDATING:Z
ifeq 54
aload 9
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
aload 6
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
if_icmpeq 54
iconst_0
goto 55
StackMap locals:
StackMap stack:
54: iconst_1
StackMap locals:
StackMap stack: int
55: invokestatic org.terracotta.offheapstore.util.Validation.validate:(Z)V
56: aload 9
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
aload 6
invokevirtual org.terracotta.offheapstore.paging.Page.asByteBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
57: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
58: aload 3
aload 6
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 6 59: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection java.util.Iterator top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 46
60: aload 0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.validatePages:()V
61: goto 63
62: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock java.util.Collection java.util.Collection java.util.Iterator
StackMap stack:
aload 0
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.freePage:(Lorg/terracotta/offheapstore/paging/Page;)V
63: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 62
64: aload 3
astore 12
65: aload 2
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
66: aload 12
areturn
end local 5 end local 4 end local 3 67: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
astore 11
68: aload 2
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
69: aload 11
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 70 1 targets Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
1 70 2 ownerLock Ljava/util/concurrent/locks/Lock;
6 67 3 recovered Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
7 67 4 freed Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
9 43 5 remove J
11 21 7 i I
13 19 8 free Lorg/terracotta/offheapstore/paging/Page;
24 43 7 releasedPages Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
28 32 8 p Lorg/terracotta/offheapstore/paging/Page;
45 67 5 freePageSource Ljava/util/Iterator<Lorg/terracotta/offheapstore/paging/Page;>;
47 59 6 t Lorg/terracotta/offheapstore/paging/Page;
48 59 8 index I
50 59 9 f Lorg/terracotta/offheapstore/paging/Page;
Exception table:
from to target type
25 36 39 any
38 39 39 any
5 65 67 any
Signature: (Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;)Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
MethodParameters:
Name Flags
targets
private boolean moveAddressDown(long);
descriptor: (J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
lload 1
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.sizeOf:(J)I
istore 3
start local 3 1: aload 0
iconst_0
aload 0
lload 1
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.pageIndexFor:(J)I
iconst_2
isub
invokestatic java.lang.Math.max:(II)I
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.addressForPage:(I)J
lconst_1
ladd
lstore 4
start local 4 2: ldc 9223372036854775807
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.random:Ljava/util/Random;
invokevirtual java.util.Random.nextLong:()J
lload 4
lrem
land
lstore 6
start local 6 3: aload 0
lload 1
iload 3
lload 6
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.moveAddressDown:(JIJ)Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals: int long long
StackMap stack:
getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.LOGGER:Lorg/slf4j/Logger;
ldc "Random Eviction Failure Migration Failed - Using Biased Approach"
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
6: aload 0
lload 1
iload 3
lconst_0
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.moveAddressDown:(JIJ)Z
ireturn
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 7 1 target J
1 7 3 sizeOfArea I
2 7 4 ceiling J
3 7 6 startAt J
MethodParameters:
Name Flags
target
private boolean moveAddressDown(long, int, long);
descriptor: (JIJ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=14, args_size=4
start local 0 start local 1 start local 3 start local 4 0: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.iterator:()Ljava/util/Iterator;
astore 6
start local 6 1: aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
dup2
lstore 7
start local 7 4: lload 4
lcmp
ifge 5
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
5: StackMap locals: long
StackMap stack:
lload 7
lload 1
lcmp
ifle 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
lload 7
iconst_0
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.evictAtAddress:(JZ)Ljava/util/Collection;
astore 9
start local 9 8: aload 9
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 10
9: iconst_1
ireturn
10: StackMap locals: java.util.Collection
StackMap stack:
aload 9
invokeinterface java.util.Collection.isEmpty:()Z
ifne 26
11: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
iload 3
i2l
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.allocate:(J)J
lstore 10
start local 10 12: lload 10
lconst_0
lcmp
iflt 20
13: lload 10
lload 1
lcmp
ifge 19
14: aload 0
lload 10
aload 0
lload 1
iload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.readBuffer:(JI)Ljava/nio/ByteBuffer;
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.writeBuffer:(JLjava/nio/ByteBuffer;)V
15: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
lload 1
lload 10
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.moved:(JJ)Z
ifne 17
16: new java.lang.AssertionError
dup
ldc "Failure to move mapping during release"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
17: StackMap locals: long
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
lload 1
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.free:(J)V
18: iconst_1
ireturn
19: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.allocator:Lorg/terracotta/offheapstore/storage/allocator/Allocator;
lload 10
invokeinterface org.terracotta.offheapstore.storage.allocator.Allocator.free:(J)V
20: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 13
goto 25
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea long int long java.util.Iterator long java.util.Collection long top java.util.Iterator
StackMap stack:
21: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
astore 12
start local 12 22: aload 12
invokevirtual java.lang.Long.longValue:()J
lload 7
lcmp
ifle 25
23: lload 7
lconst_1
ladd
lstore 4
24: goto 0
end local 12 25: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
end local 10 end local 9 26: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea long int long java.util.Iterator long
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 28
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
dup2
lstore 7
lload 1
27: lcmp
iflt 7
28: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 7 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 29 1 target J
0 29 3 size I
0 29 4 start J
1 29 6 pointers Ljava/util/Iterator<Ljava/lang/Long;>;
4 29 7 address J
8 26 9 removed Ljava/util/Collection<Ljava/lang/Long;>;
12 26 10 relocated J
22 25 12 p Ljava/lang/Long;
MethodParameters:
Name Flags
target
size
start
public boolean shrink();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.owner:Lorg/terracotta/offheapstore/paging/OffHeapStorageArea$Owner;
invokeinterface org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner.writeLock:()Ljava/util/concurrent/locks/Lock;
astore 1
start local 1 1: aload 1
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 5
3: aload 1
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
4: iconst_0
ireturn
5: StackMap locals: java.util.concurrent.locks.Lock
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
istore 2
start local 2 6: aload 0
new java.util.LinkedList
dup
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iconst_1
isub
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.release:(Ljava/util/Collection;)Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.concurrent.locks.Lock int top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 3
start local 3 8: aload 0
aload 3
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.freePage:(Lorg/terracotta/offheapstore/paging/Page;)V
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iload 2
if_icmpge 11
iconst_1
goto 12
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.concurrent.locks.Lock int
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 6
13: aload 1
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
14: iload 6
ireturn
end local 2 15: StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
astore 5
16: aload 1
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
17: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
1 18 1 ownerLock Ljava/util/concurrent/locks/Lock;
6 15 2 initialSize I
8 9 3 p Lorg/terracotta/offheapstore/paging/Page;
Exception table:
from to target type
2 3 15 any
5 13 15 any
private int getIndexForPage(org.terracotta.offheapstore.paging.Page);
descriptor: (Lorg/terracotta/offheapstore/paging/Page;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 2: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
aload 1
if_acmpne 4
3: aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
0 6 1 p Lorg/terracotta/offheapstore/paging/Page;
2 4 2 e Ljava/util/Map$Entry<Ljava/lang/Integer;Lorg/terracotta/offheapstore/paging/Page;>;
MethodParameters:
Name Flags
p
private void validatePages();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.VALIDATING:Z
ifeq 9
1: iconst_0
istore 1
start local 1 2: goto 8
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 7
4: new java.util.ArrayList
dup
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 5: aload 2
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
6: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Page Indices "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 7: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
aload 0
getfield org.terracotta.offheapstore.paging.OffHeapStorageArea.pages:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
if_icmplt 3
end local 1 9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
2 9 1 i I
5 7 2 pageIndices Ljava/util/List<Ljava/lang/Integer;>;
static int[] $SWITCH_TABLE$org$terracotta$offheapstore$storage$PointerSize();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.$SWITCH_TABLE$org$terracotta$offheapstore$storage$PointerSize:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.terracotta.offheapstore.storage.PointerSize.values:()[Lorg/terracotta/offheapstore/storage/PointerSize;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.terracotta.offheapstore.storage.PointerSize.INT:Lorg/terracotta/offheapstore/storage/PointerSize;
invokevirtual org.terracotta.offheapstore.storage.PointerSize.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.terracotta.offheapstore.storage.PointerSize.LONG:Lorg/terracotta/offheapstore/storage/PointerSize;
invokevirtual org.terracotta.offheapstore.storage.PointerSize.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
dup
putstatic org.terracotta.offheapstore.paging.OffHeapStorageArea.$SWITCH_TABLE$org$terracotta$offheapstore$storage$PointerSize:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
}
SourceFile: "OffHeapStorageArea.java"
NestMembers:
org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public abstract Owner = org.terracotta.offheapstore.paging.OffHeapStorageArea$Owner of org.terracotta.offheapstore.paging.OffHeapStorageArea