class sun.misc.SoftCache$ValueCell extends java.lang.ref.SoftReference
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.misc.SoftCache$ValueCell
super_class: java.lang.ref.SoftReference
{
private static java.lang.Object INVALID_KEY;
descriptor: Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int dropped;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.lang.Object key;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic sun.misc.SoftCache$ValueCell.INVALID_KEY:Ljava/lang/Object;
1: iconst_0
putstatic sun.misc.SoftCache$ValueCell.dropped:I
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.Object, java.lang.Object, java.lang.ref.ReferenceQueue);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
1: aload 0
aload 1
putfield sun.misc.SoftCache$ValueCell.key:Ljava/lang/Object;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/misc/SoftCache$ValueCell;
0 3 1 key Ljava/lang/Object;
0 3 2 value Ljava/lang/Object;
0 3 3 queue Ljava/lang/ref/ReferenceQueue;
MethodParameters:
Name Flags
key
value
queue
private static sun.misc.SoftCache$ValueCell create(java.lang.Object, java.lang.Object, java.lang.ref.ReferenceQueue);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Lsun/misc/SoftCache$ValueCell;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
new sun.misc.SoftCache$ValueCell
dup
aload 0
aload 1
aload 2
invokespecial sun.misc.SoftCache$ValueCell.<init>:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 key Ljava/lang/Object;
0 2 1 value Ljava/lang/Object;
0 2 2 queue Ljava/lang/ref/ReferenceQueue;
MethodParameters:
Name Flags
key
value
queue
private static java.lang.Object strip(java.lang.Object, boolean);
descriptor: (Ljava/lang/Object;Z)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=4, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
checkcast sun.misc.SoftCache$ValueCell
astore 2
start local 2 2: aload 2
invokevirtual sun.misc.SoftCache$ValueCell.get:()Ljava/lang/Object;
astore 3
start local 3 3: iload 1
ifeq 4
aload 2
invokevirtual sun.misc.SoftCache$ValueCell.drop:()V
4: StackMap locals: sun.misc.SoftCache$ValueCell java.lang.Object
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 val Ljava/lang/Object;
0 5 1 drop Z
2 5 2 vc Lsun/misc/SoftCache$ValueCell;
3 5 3 o Ljava/lang/Object;
MethodParameters:
Name Flags
val
drop
private boolean isValid();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.misc.SoftCache$ValueCell.key:Ljava/lang/Object;
getstatic sun.misc.SoftCache$ValueCell.INVALID_KEY:Ljava/lang/Object;
if_acmpeq 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 Lsun/misc/SoftCache$ValueCell;
private void drop();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.ref.SoftReference.clear:()V
1: aload 0
getstatic sun.misc.SoftCache$ValueCell.INVALID_KEY:Ljava/lang/Object;
putfield sun.misc.SoftCache$ValueCell.key:Ljava/lang/Object;
2: getstatic sun.misc.SoftCache$ValueCell.dropped:I
iconst_1
iadd
putstatic sun.misc.SoftCache$ValueCell.dropped:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/misc/SoftCache$ValueCell;
}
SourceFile: "SoftCache.java"
NestHost: sun.misc.SoftCache
InnerClasses:
private ValueCell = sun.misc.SoftCache$ValueCell of sun.misc.SoftCache