final class org.apache.cassandra.utils.memory.BufferPool$Chunk
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.utils.memory.BufferPool$Chunk
super_class: java.lang.Object
{
private final java.nio.ByteBuffer slab;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long baseAddress;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int shift;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long freeSlots;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.apache.cassandra.utils.memory.BufferPool$Chunk> freeSlotsUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;>;
private volatile org.apache.cassandra.utils.memory.BufferPool$LocalPool owner;
descriptor: Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private long lastRecycled;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final org.apache.cassandra.utils.memory.BufferPool$Chunk original;
descriptor: Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/utils/memory/BufferPool;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
3: ldc Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
ldc "freeSlots"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
putstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.apache.cassandra.utils.memory.BufferPool$Chunk);
descriptor: (Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 2
aload 1
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
lconst_0
lcmp
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk org.apache.cassandra.utils.memory.BufferPool$Chunk
StackMap stack:
aload 0
aload 1
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
3: aload 0
aload 1
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
4: aload 0
aload 1
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
5: aload 0
ldc -1
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
6: aload 0
aload 1
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
7: getstatic org.apache.cassandra.utils.memory.BufferPool.DEBUG:Z
ifeq 9
8: getstatic org.apache.cassandra.utils.memory.BufferPool.globalPool:Lorg/apache/cassandra/utils/memory/BufferPool$GlobalPool;
getfield org.apache.cassandra.utils.memory.BufferPool$GlobalPool.debug:Lorg/apache/cassandra/utils/memory/BufferPool$Debug;
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Debug.recycle:(Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 10 1 recycle Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
MethodParameters:
Name Flags
recycle
void <init>(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer
StackMap stack:
aload 0
aload 1
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
3: aload 0
aload 1
invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAddress:(Ljava/nio/ByteBuffer;)J
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
4: aload 0
bipush 31
aload 1
invokevirtual java.nio.ByteBuffer.capacity:()I
bipush 64
idiv
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
iand
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
5: aload 0
aload 1
invokevirtual java.nio.ByteBuffer.capacity:()I
ifne 6
lconst_0
goto 7
StackMap locals:
StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk
6: ldc -1
StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer
StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk long
7: putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
8: aload 0
getstatic org.apache.cassandra.utils.memory.BufferPool.DEBUG:Z
ifeq 9
aload 0
goto 10
StackMap locals:
StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk
9: aconst_null
StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer
StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk org.apache.cassandra.utils.memory.BufferPool$Chunk
10: putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 12 1 slab Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
slab
void acquire(org.apache.cassandra.utils.memory.BufferPool$LocalPool);
descriptor: (Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
ifnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 3 1 owner Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
MethodParameters:
Name Flags
owner
void release();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
1: aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.tryRecycle:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
void tryRecycle();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
ifnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.isFree:()Z
ifeq 3
getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
ldc -1
lconst_0
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 3
2: aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.recycle:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
void recycle();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
lconst_0
lcmp
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.utils.memory.BufferPool.globalPool:Lorg/apache/cassandra/utils/memory/BufferPool$GlobalPool;
new org.apache.cassandra.utils.memory.BufferPool$Chunk
dup
aload 0
invokespecial org.apache.cassandra.utils.memory.BufferPool$Chunk.<init>:(Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
invokevirtual org.apache.cassandra.utils.memory.BufferPool$GlobalPool.recycle:(Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
static org.apache.cassandra.utils.memory.BufferPool$Chunk getParentChunk(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAttachment:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
astore 1
start local 1 1: aload 1
instanceof org.apache.cassandra.utils.memory.BufferPool$Chunk
ifeq 3
2: aload 1
checkcast org.apache.cassandra.utils.memory.BufferPool$Chunk
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
instanceof org.apache.cassandra.utils.concurrent.Ref
ifeq 5
4: aload 1
checkcast org.apache.cassandra.utils.concurrent.Ref
invokevirtual org.apache.cassandra.utils.concurrent.Ref.get:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.memory.BufferPool$Chunk
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 buffer Ljava/nio/ByteBuffer;
1 6 1 attachment Ljava/lang/Object;
MethodParameters:
Name Flags
buffer
java.nio.ByteBuffer setAttachment(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.utils.concurrent.Ref.DEBUG_ENABLED:Z
ifeq 2
1: aload 1
new org.apache.cassandra.utils.concurrent.Ref
dup
aload 0
aconst_null
invokespecial org.apache.cassandra.utils.concurrent.Ref.<init>:(Ljava/lang/Object;Lorg/apache/cassandra/utils/concurrent/RefCounted$Tidy;)V
invokestatic org.apache.cassandra.utils.memory.MemoryUtil.setAttachment:(Ljava/nio/ByteBuffer;Ljava/lang/Object;)V
goto 3
2: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic org.apache.cassandra.utils.memory.MemoryUtil.setAttachment:(Ljava/nio/ByteBuffer;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 4 1 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
boolean releaseAttachment(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Z
flags: (0x0000)
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAttachment:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
instanceof org.apache.cassandra.utils.concurrent.Ref
ifeq 5
4: aload 2
checkcast org.apache.cassandra.utils.concurrent.Ref
invokevirtual org.apache.cassandra.utils.concurrent.Ref.release:()V
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 6 1 buffer Ljava/nio/ByteBuffer;
1 6 2 attachment Ljava/lang/Object;
MethodParameters:
Name Flags
buffer
void reset();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
invokestatic org.apache.cassandra.utils.memory.BufferPool$Chunk.getParentChunk:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.free:(Ljava/nio/ByteBuffer;Z)J
pop2
goto 4
3: StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
invokestatic org.apache.cassandra.io.util.FileUtils.clean:(Ljava/nio/ByteBuffer;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
1 5 1 parent Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
long setFreeSlots(long);
descriptor: (J)J
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
lstore 3
start local 3 1: aload 0
lload 1
putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
2: lload 3
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 3 1 val J
1 3 3 ret J
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
val
int capacity();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush 64
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
final int unit();
descriptor: ()I
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: iconst_1
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
final boolean isFree();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
ldc -1
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
int free();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
invokestatic java.lang.Long.bitCount:(J)I
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.unit:()I
imul
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
java.nio.ByteBuffer get(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=10, locals=12, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
isub
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.unit:()I
iadd
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
iushr
istore 2
start local 2 1: iload 2
bipush 64
if_icmple 3
2: aconst_null
areturn
3: StackMap locals: int
StackMap stack:
ldc -1
bipush 64
iload 2
isub
lushr
lstore 3
start local 3 4: ldc 1229782938247303441
lstore 5
start local 5 5: lload 5
ldc 15
iload 2
iconst_1
isub
iconst_3
iand
lushr
lmul
lstore 5
6: lload 5
ldc -1
iload 2
iconst_1
isub
lushr
land
lstore 5
7: StackMap locals: long long
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
lstore 7
start local 7 8: lload 7
lload 5
land
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
istore 9
start local 9 9: iload 9
bipush 64
if_icmpne 11
10: aconst_null
areturn
11: StackMap locals: long int
StackMap stack:
lload 5
lconst_1
iload 9
lshl
lxor
lstore 5
12: lload 3
iload 9
lshl
lstore 10
start local 10 13: lload 10
lload 7
land
lload 10
lcmp
ifne 7
14: StackMap locals: long
StackMap stack:
getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 7
lload 7
lload 10
ldc -1
lxor
land
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 16
15: goto 18
16: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
lstore 7
17: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 14
lload 10
lload 7
land
lload 10
lcmp
ifeq 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 9
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
ishl
iload 1
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.get:(II)Ljava/nio/ByteBuffer;
areturn
end local 10 end local 9 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 19 1 size I
1 19 2 slotCount I
4 19 3 slotBits J
5 19 5 searchMask J
8 19 7 cur J
9 19 9 index I
13 19 10 candidate J
MethodParameters:
Name Flags
size
private java.nio.ByteBuffer get(int, int);
descriptor: (II)Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
iload 1
iload 2
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
1: aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
iload 1
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
2: aload 0
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.setAttachment:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 3 1 offset I
0 3 2 size I
MethodParameters:
Name Flags
offset
size
int roundUp(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.unit:()I
invokestatic org.apache.cassandra.utils.memory.BufferPool.roundUp:(II)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 1 1 v I
MethodParameters:
Name Flags
v
long free(java.nio.ByteBuffer, boolean);
descriptor: (Ljava/nio/ByteBuffer;Z)J
flags: (0x0000)
Code:
stack=7, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.releaseAttachment:(Ljava/nio/ByteBuffer;)Z
ifne 2
1: lconst_1
lreturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAddress:(Ljava/nio/ByteBuffer;)J
lstore 3
start local 3 3: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 8
lload 3
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
lcmp
iflt 4
iconst_1
goto 5
StackMap locals: long
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: lload 3
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.capacity:()I
i2l
ladd
lcmp
ifgt 6
iconst_1
goto 7
StackMap locals:
StackMap stack: int
6: iconst_0
StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer int long
StackMap stack: int int
7: iand
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
lload 3
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
lsub
l2i
istore 5
start local 5 9: aload 0
aload 1
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.roundUp:(I)I
istore 6
start local 6 10: iload 5
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
ishr
istore 5
11: iload 6
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
ishr
istore 7
start local 7 12: lconst_1
iload 7
lshl
lconst_1
lsub
lstore 8
start local 8 13: lload 8
iload 5
lshl
lstore 10
start local 10 14: iload 7
bipush 64
if_icmpne 18
15: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 16
iload 6
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.capacity:()I
if_icmpeq 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer int long int int int long long
StackMap stack:
getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 17
iload 5
ifeq 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
ldc -1
lstore 10
18: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
lstore 14
start local 14 19: lload 14
lload 10
lor
lstore 12
start local 12 20: getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
ifne 21
lload 12
lload 14
lload 10
lxor
lcmp
ifeq 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals: long long
StackMap stack:
iload 2
ifeq 23
lload 12
ldc -1
lcmp
ifne 23
22: lconst_0
lstore 12
23: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 14
lload 12
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 18
24: lload 12
lreturn
end local 14 end local 12 end local 10 end local 8 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
0 25 1 buffer Ljava/nio/ByteBuffer;
0 25 2 tryRelease Z
3 25 3 address J
9 25 5 position I
10 25 6 size I
12 25 7 slotCount I
13 25 8 slotBits J
14 25 10 shiftedSlotBits J
20 25 12 next J
19 25 14 cur J
MethodParameters:
Name Flags
buffer
tryRelease
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: ldc "[slab %s, slots bitmap %s, capacity %d, free %d]"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
aastore
dup
iconst_1
aload 0
getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
invokestatic java.lang.Long.toBinaryString:(J)Ljava/lang/String;
aastore
dup
iconst_2
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.capacity:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
aload 0
invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.free:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
}
SourceFile: "BufferPool.java"
NestHost: org.apache.cassandra.utils.memory.BufferPool
InnerClasses:
public abstract Tidy = org.apache.cassandra.utils.concurrent.RefCounted$Tidy of org.apache.cassandra.utils.concurrent.RefCounted
final Chunk = org.apache.cassandra.utils.memory.BufferPool$Chunk of org.apache.cassandra.utils.memory.BufferPool
final Debug = org.apache.cassandra.utils.memory.BufferPool$Debug of org.apache.cassandra.utils.memory.BufferPool
final GlobalPool = org.apache.cassandra.utils.memory.BufferPool$GlobalPool of org.apache.cassandra.utils.memory.BufferPool
final LocalPool = org.apache.cassandra.utils.memory.BufferPool$LocalPool of org.apache.cassandra.utils.memory.BufferPool