public class org.apache.cassandra.cache.RefCountedMemory extends org.apache.cassandra.io.util.Memory implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.cache.RefCountedMemory
super_class: org.apache.cassandra.io.util.Memory
{
private volatile int references;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.apache.cassandra.cache.RefCountedMemory> UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/apache/cassandra/cache/RefCountedMemory;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/cache/RefCountedMemory;
ldc "references"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic org.apache.cassandra.cache.RefCountedMemory.UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokespecial org.apache.cassandra.io.util.Memory.<init>:(J)V
1: aload 0
iconst_1
putfield org.apache.cassandra.cache.RefCountedMemory.references:I
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/cache/RefCountedMemory;
0 3 1 size J
MethodParameters:
Name Flags
size
public boolean reference();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.cache.RefCountedMemory.UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
istore 1
start local 1 1: iload 1
ifgt 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.cache.RefCountedMemory.UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 1
iload 1
iconst_1
iadd
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
4: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/cache/RefCountedMemory;
1 5 1 n I
public void unreference();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.cache.RefCountedMemory.UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.decrementAndGet:(Ljava/lang/Object;)I
ifne 2
1: aload 0
invokespecial org.apache.cassandra.io.util.Memory.free:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/cache/RefCountedMemory;
public org.apache.cassandra.cache.RefCountedMemory copy(long);
descriptor: (J)Lorg/apache/cassandra/cache/RefCountedMemory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=4, args_size=2
start local 0 start local 1 0: new org.apache.cassandra.cache.RefCountedMemory
dup
lload 1
invokespecial org.apache.cassandra.cache.RefCountedMemory.<init>:(J)V
astore 3
start local 3 1: aload 3
lconst_0
aload 0
lconst_0
aload 0
invokevirtual org.apache.cassandra.cache.RefCountedMemory.size:()J
lload 1
invokestatic java.lang.Math.min:(JJ)J
invokevirtual org.apache.cassandra.cache.RefCountedMemory.put:(JLorg/apache/cassandra/io/util/Memory;JJ)V
2: aload 3
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/cache/RefCountedMemory;
0 3 1 newSize J
1 3 3 copy Lorg/apache/cassandra/cache/RefCountedMemory;
MethodParameters:
Name Flags
newSize
public void free();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cache/RefCountedMemory;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.cache.RefCountedMemory.unreference:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cache/RefCountedMemory;
public org.apache.cassandra.io.util.Memory copy(long);
descriptor: (J)Lorg/apache/cassandra/io/util/Memory;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=2
0: aload 0
lload 1
invokevirtual org.apache.cassandra.cache.RefCountedMemory.copy:(J)Lorg/apache/cassandra/cache/RefCountedMemory;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "RefCountedMemory.java"