public class org.apache.cassandra.io.util.SafeMemory extends org.apache.cassandra.io.util.Memory implements org.apache.cassandra.utils.concurrent.SharedCloseable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.io.util.SafeMemory
super_class: org.apache.cassandra.io.util.Memory
{
private final org.apache.cassandra.utils.concurrent.Ref<?> ref;
descriptor: Lorg/apache/cassandra/utils/concurrent/Ref;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/apache/cassandra/utils/concurrent/Ref<*>;
public void <init>(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, 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
new org.apache.cassandra.utils.concurrent.Ref
dup
aconst_null
new org.apache.cassandra.io.util.SafeMemory$MemoryTidy
dup
aload 0
getfield org.apache.cassandra.io.util.SafeMemory.peer:J
lload 1
invokespecial org.apache.cassandra.io.util.SafeMemory$MemoryTidy.<init>:(JJ)V
invokespecial org.apache.cassandra.utils.concurrent.Ref.<init>:(Ljava/lang/Object;Lorg/apache/cassandra/utils/concurrent/RefCounted$Tidy;)V
putfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/io/util/SafeMemory;
0 3 1 size J
MethodParameters:
Name Flags
size
private void <init>(org.apache.cassandra.io.util.SafeMemory);
descriptor: (Lorg/apache/cassandra/io/util/SafeMemory;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.apache.cassandra.io.util.Memory.<init>:(Lorg/apache/cassandra/io/util/Memory;)V
1: aload 0
aload 1
getfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
invokevirtual org.apache.cassandra.utils.concurrent.Ref.ref:()Lorg/apache/cassandra/utils/concurrent/Ref;
putfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
2: aload 0
getfield org.apache.cassandra.io.util.SafeMemory.peer:J
lconst_0
lcmp
ifne 5
aload 0
getfield org.apache.cassandra.io.util.SafeMemory.size:J
lconst_0
lcmp
ifeq 5
3: aload 0
getfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
invokevirtual org.apache.cassandra.utils.concurrent.Ref.ensureReleased:()V
4: new java.lang.IllegalStateException
dup
ldc "Cannot create a sharedCopy of a SafeMemory object that has already been closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.apache.cassandra.io.util.SafeMemory org.apache.cassandra.io.util.SafeMemory
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/io/util/SafeMemory;
0 6 1 copyOf Lorg/apache/cassandra/io/util/SafeMemory;
MethodParameters:
Name Flags
copyOf
public org.apache.cassandra.io.util.SafeMemory sharedCopy();
descriptor: ()Lorg/apache/cassandra/io/util/SafeMemory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.apache.cassandra.io.util.SafeMemory
dup
aload 0
invokespecial org.apache.cassandra.io.util.SafeMemory.<init>:(Lorg/apache/cassandra/io/util/SafeMemory;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/io/util/SafeMemory;
public void free();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
invokevirtual org.apache.cassandra.utils.concurrent.Ref.release:()V
1: aload 0
lconst_0
putfield org.apache.cassandra.io.util.SafeMemory.peer:J
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/io/util/SafeMemory;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
invokevirtual org.apache.cassandra.utils.concurrent.Ref.ensureReleased:()V
1: aload 0
lconst_0
putfield org.apache.cassandra.io.util.SafeMemory.peer:J
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/io/util/SafeMemory;
public java.lang.Throwable close(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
aload 1
invokevirtual org.apache.cassandra.utils.concurrent.Ref.ensureReleased:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/io/util/SafeMemory;
0 1 1 accumulate Ljava/lang/Throwable;
MethodParameters:
Name Flags
accumulate
public org.apache.cassandra.io.util.SafeMemory copy(long);
descriptor: (J)Lorg/apache/cassandra/io/util/SafeMemory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=4, args_size=2
start local 0 start local 1 0: new org.apache.cassandra.io.util.SafeMemory
dup
lload 1
invokespecial org.apache.cassandra.io.util.SafeMemory.<init>:(J)V
astore 3
start local 3 1: aload 3
lconst_0
aload 0
lconst_0
aload 0
invokevirtual org.apache.cassandra.io.util.SafeMemory.size:()J
lload 1
invokestatic java.lang.Math.min:(JJ)J
invokevirtual org.apache.cassandra.io.util.SafeMemory.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/io/util/SafeMemory;
0 3 1 newSize J
1 3 3 copy Lorg/apache/cassandra/io/util/SafeMemory;
MethodParameters:
Name Flags
newSize
protected void checkBounds(long, long);
descriptor: (JJ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tInline cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/io/util/SafeMemory;
RuntimeInvisibleAnnotations:
Inline()
MethodParameters:
Name Flags
start
end
public void addTo(org.apache.cassandra.utils.concurrent.Ref$IdentityCollection);
descriptor: (Lorg/apache/cassandra/utils/concurrent/Ref$IdentityCollection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.apache.cassandra.io.util.SafeMemory.ref:Lorg/apache/cassandra/utils/concurrent/Ref;
invokevirtual org.apache.cassandra.utils.concurrent.Ref$IdentityCollection.add:(Lorg/apache/cassandra/utils/concurrent/Ref;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/io/util/SafeMemory;
0 2 1 identities Lorg/apache/cassandra/utils/concurrent/Ref$IdentityCollection;
MethodParameters:
Name Flags
identities
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.io.util.SafeMemory.copy:(J)Lorg/apache/cassandra/io/util/SafeMemory;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.apache.cassandra.utils.concurrent.SharedCloseable sharedCopy();
descriptor: ()Lorg/apache/cassandra/utils/concurrent/SharedCloseable;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.apache.cassandra.io.util.SafeMemory.sharedCopy:()Lorg/apache/cassandra/io/util/SafeMemory;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "SafeMemory.java"
NestMembers:
org.apache.cassandra.io.util.SafeMemory$MemoryTidy
InnerClasses:
private final MemoryTidy = org.apache.cassandra.io.util.SafeMemory$MemoryTidy of org.apache.cassandra.io.util.SafeMemory
public IdentityCollection = org.apache.cassandra.utils.concurrent.Ref$IdentityCollection of org.apache.cassandra.utils.concurrent.Ref
public abstract Tidy = org.apache.cassandra.utils.concurrent.RefCounted$Tidy of org.apache.cassandra.utils.concurrent.RefCounted