abstract class java.beans.WeakIdentityMap<T>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: java.beans.WeakIdentityMap
super_class: java.lang.Object
{
private static final int MAXIMUM_CAPACITY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1073741824
private static final java.lang.Object NULL;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.ref.ReferenceQueue<java.lang.Object> queue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;
private volatile java.beans.WeakIdentityMap$Entry<T>[] table;
descriptor: [Ljava/beans/WeakIdentityMap$Entry;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: [Ljava/beans/WeakIdentityMap$Entry<TT;>;
private int threshold;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int size;
descriptor: I
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 java.beans.WeakIdentityMap.NULL:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putfield java.beans.WeakIdentityMap.queue:Ljava/lang/ref/ReferenceQueue;
2: aload 0
aload 0
bipush 8
invokevirtual java.beans.WeakIdentityMap.newTable:(I)[Ljava/beans/WeakIdentityMap$Entry;
putfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
3: aload 0
bipush 6
putfield java.beans.WeakIdentityMap.threshold:I
4: aload 0
iconst_0
putfield java.beans.WeakIdentityMap.size:I
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/beans/WeakIdentityMap<TT;>;
public T get();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.beans.WeakIdentityMap.removeStaleEntries:()V
1: aload 1
ifnonnull 3
2: getstatic java.beans.WeakIdentityMap.NULL:Ljava/lang/Object;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.hashCode:()I
istore 2
start local 2 4: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
astore 3
start local 3 5: aload 3
iload 2
invokestatic java.beans.WeakIdentityMap.getIndex:([Ljava/beans/WeakIdentityMap$Entry;I)I
istore 4
start local 4 6: aload 3
iload 4
aaload
astore 5
start local 5 7: goto 11
8: StackMap locals: java.beans.WeakIdentityMap java.lang.Object int java.beans.WeakIdentityMap$Entry[] int java.beans.WeakIdentityMap$Entry
StackMap stack:
aload 5
aload 1
iload 2
invokevirtual java.beans.WeakIdentityMap$Entry.isMatched:(Ljava/lang/Object;I)Z
ifeq 10
9: aload 5
getfield java.beans.WeakIdentityMap$Entry.value:Ljava/lang/Object;
areturn
10: StackMap locals:
StackMap stack:
aload 5
getfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
astore 5
StackMap locals:
StackMap stack:
11: aload 5
ifnonnull 8
end local 5 12: getstatic java.beans.WeakIdentityMap.NULL:Ljava/lang/Object;
dup
astore 5
monitorenter
13: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
iload 2
invokestatic java.beans.WeakIdentityMap.getIndex:([Ljava/beans/WeakIdentityMap$Entry;I)I
istore 4
14: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
iload 4
aaload
astore 6
start local 6 15: goto 20
16: StackMap locals: java.beans.WeakIdentityMap java.lang.Object int java.beans.WeakIdentityMap$Entry[] int java.lang.Object java.beans.WeakIdentityMap$Entry
StackMap stack:
aload 6
aload 1
iload 2
invokevirtual java.beans.WeakIdentityMap$Entry.isMatched:(Ljava/lang/Object;I)Z
ifeq 19
17: aload 6
getfield java.beans.WeakIdentityMap$Entry.value:Ljava/lang/Object;
aload 5
monitorexit
18: areturn
19: StackMap locals:
StackMap stack:
aload 6
getfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
astore 6
StackMap locals:
StackMap stack:
20: aload 6
ifnonnull 16
end local 6 21: aload 0
aload 1
invokevirtual java.beans.WeakIdentityMap.create:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 22: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
iload 4
new java.beans.WeakIdentityMap$Entry
dup
aload 1
iload 2
aload 6
aload 0
getfield java.beans.WeakIdentityMap.queue:Ljava/lang/ref/ReferenceQueue;
aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
iload 4
aaload
invokespecial java.beans.WeakIdentityMap$Entry.<init>:(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/ref/ReferenceQueue;Ljava/beans/WeakIdentityMap$Entry;)V
aastore
23: aload 0
dup
getfield java.beans.WeakIdentityMap.size:I
iconst_1
iadd
dup_x1
putfield java.beans.WeakIdentityMap.size:I
aload 0
getfield java.beans.WeakIdentityMap.threshold:I
if_icmplt 35
24: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
arraylength
ldc 1073741824
if_icmpne 27
25: aload 0
ldc 2147483647
putfield java.beans.WeakIdentityMap.threshold:I
26: goto 35
27: StackMap locals: java.beans.WeakIdentityMap java.lang.Object int java.beans.WeakIdentityMap$Entry[] int java.lang.Object java.lang.Object
StackMap stack:
aload 0
invokevirtual java.beans.WeakIdentityMap.removeStaleEntries:()V
28: aload 0
aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
arraylength
iconst_2
imul
invokevirtual java.beans.WeakIdentityMap.newTable:(I)[Ljava/beans/WeakIdentityMap$Entry;
astore 3
29: aload 0
aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
aload 3
invokevirtual java.beans.WeakIdentityMap.transfer:([Ljava/beans/WeakIdentityMap$Entry;[Ljava/beans/WeakIdentityMap$Entry;)V
30: aload 0
getfield java.beans.WeakIdentityMap.size:I
aload 0
getfield java.beans.WeakIdentityMap.threshold:I
iconst_2
idiv
if_icmplt 34
31: aload 0
aload 3
putfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
32: aload 0
dup
getfield java.beans.WeakIdentityMap.threshold:I
iconst_2
imul
putfield java.beans.WeakIdentityMap.threshold:I
33: goto 35
34: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
invokevirtual java.beans.WeakIdentityMap.transfer:([Ljava/beans/WeakIdentityMap$Entry;[Ljava/beans/WeakIdentityMap$Entry;)V
35: StackMap locals:
StackMap stack:
aload 6
aload 5
monitorexit
36: areturn
end local 6 37: StackMap locals: java.beans.WeakIdentityMap java.lang.Object int java.beans.WeakIdentityMap$Entry[] int java.lang.Object
StackMap stack: java.lang.Throwable
aload 5
monitorexit
38: athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Ljava/beans/WeakIdentityMap<TT;>;
0 39 1 key Ljava/lang/Object;
4 39 2 hash I
5 39 3 table [Ljava/beans/WeakIdentityMap$Entry;
6 39 4 index I
7 12 5 entry Ljava/beans/WeakIdentityMap$Entry<TT;>;
15 21 6 entry Ljava/beans/WeakIdentityMap$Entry<TT;>;
22 37 6 value TT;
Exception table:
from to target type
13 18 37 any
19 36 37 any
37 38 37 any
Signature: (Ljava/lang/Object;)TT;
MethodParameters:
Name Flags
key
protected abstract T create();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Ljava/lang/Object;)TT;
MethodParameters:
Name Flags
key
private void removeStaleEntries();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
getfield java.beans.WeakIdentityMap.queue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
astore 1
start local 1 1: aload 1
ifnull 27
2: getstatic java.beans.WeakIdentityMap.NULL:Ljava/lang/Object;
dup
astore 2
monitorenter
3: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 1
checkcast java.beans.WeakIdentityMap$Entry
astore 3
start local 3 4: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
aload 3
getfield java.beans.WeakIdentityMap$Entry.hash:I
invokestatic java.beans.WeakIdentityMap.getIndex:([Ljava/beans/WeakIdentityMap$Entry;I)I
istore 4
start local 4 5: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
iload 4
aaload
astore 5
start local 5 6: aload 5
astore 6
start local 6 7: goto 20
8: StackMap locals: java.beans.WeakIdentityMap java.lang.Object java.lang.Object java.beans.WeakIdentityMap$Entry int java.beans.WeakIdentityMap$Entry java.beans.WeakIdentityMap$Entry
StackMap stack:
aload 6
getfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
astore 7
start local 7 9: aload 6
aload 3
if_acmpne 18
10: aload 5
aload 3
if_acmpne 13
11: aload 0
getfield java.beans.WeakIdentityMap.table:[Ljava/beans/WeakIdentityMap$Entry;
iload 4
aload 7
aastore
12: goto 14
13: StackMap locals: java.beans.WeakIdentityMap$Entry
StackMap stack:
aload 5
aload 7
putfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
14: StackMap locals:
StackMap stack:
aload 3
aconst_null
putfield java.beans.WeakIdentityMap$Entry.value:Ljava/lang/Object;
15: aload 3
aconst_null
putfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
16: aload 0
dup
getfield java.beans.WeakIdentityMap.size:I
iconst_1
isub
putfield java.beans.WeakIdentityMap.size:I
17: goto 21
18: StackMap locals:
StackMap stack:
aload 6
astore 5
19: aload 7
astore 6
end local 7 20: StackMap locals:
StackMap stack:
aload 6
ifnonnull 8
21: StackMap locals:
StackMap stack:
aload 0
getfield java.beans.WeakIdentityMap.queue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
astore 1
end local 6 end local 5 end local 4 end local 3 22: aload 1
ifnonnull 3
23: aload 2
monitorexit
24: goto 27
StackMap locals: java.beans.WeakIdentityMap java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
25: aload 2
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljava/beans/WeakIdentityMap<TT;>;
1 28 1 ref Ljava/lang/Object;
4 22 3 entry Ljava/beans/WeakIdentityMap$Entry<TT;>;
5 22 4 index I
6 22 5 prev Ljava/beans/WeakIdentityMap$Entry<TT;>;
7 22 6 current Ljava/beans/WeakIdentityMap$Entry<TT;>;
9 20 7 next Ljava/beans/WeakIdentityMap$Entry<TT;>;
Exception table:
from to target type
3 24 25 any
25 26 25 any
private void transfer(java.beans.WeakIdentityMap$Entry<T>[], java.beans.WeakIdentityMap$Entry<T>[]);
descriptor: ([Ljava/beans/WeakIdentityMap$Entry;[Ljava/beans/WeakIdentityMap$Entry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 18
2: StackMap locals: int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 3: aload 1
iload 3
aconst_null
aastore
4: goto 16
5: StackMap locals: java.beans.WeakIdentityMap$Entry
StackMap stack:
aload 4
getfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
astore 5
start local 5 6: aload 4
invokevirtual java.beans.WeakIdentityMap$Entry.get:()Ljava/lang/Object;
astore 6
start local 6 7: aload 6
ifnonnull 12
8: aload 4
aconst_null
putfield java.beans.WeakIdentityMap$Entry.value:Ljava/lang/Object;
9: aload 4
aconst_null
putfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
10: aload 0
dup
getfield java.beans.WeakIdentityMap.size:I
iconst_1
isub
putfield java.beans.WeakIdentityMap.size:I
11: goto 15
12: StackMap locals: java.beans.WeakIdentityMap$Entry java.lang.Object
StackMap stack:
aload 2
aload 4
getfield java.beans.WeakIdentityMap$Entry.hash:I
invokestatic java.beans.WeakIdentityMap.getIndex:([Ljava/beans/WeakIdentityMap$Entry;I)I
istore 7
start local 7 13: aload 4
aload 2
iload 7
aaload
putfield java.beans.WeakIdentityMap$Entry.next:Ljava/beans/WeakIdentityMap$Entry;
14: aload 2
iload 7
aload 4
aastore
end local 7 15: StackMap locals:
StackMap stack:
aload 5
astore 4
end local 6 end local 5 16: StackMap locals:
StackMap stack:
aload 4
ifnonnull 5
end local 4 17: iinc 3 1
StackMap locals:
StackMap stack:
18: iload 3
aload 1
arraylength
if_icmplt 2
end local 3 19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/beans/WeakIdentityMap<TT;>;
0 20 1 oldTable [Ljava/beans/WeakIdentityMap$Entry;
0 20 2 newTable [Ljava/beans/WeakIdentityMap$Entry;
1 19 3 i I
3 17 4 entry Ljava/beans/WeakIdentityMap$Entry<TT;>;
6 16 5 next Ljava/beans/WeakIdentityMap$Entry<TT;>;
7 16 6 key Ljava/lang/Object;
13 15 7 index I
Signature: ([Ljava/beans/WeakIdentityMap$Entry<TT;>;[Ljava/beans/WeakIdentityMap$Entry<TT;>;)V
MethodParameters:
Name Flags
oldTable
newTable
private java.beans.WeakIdentityMap$Entry<T>[] newTable(int);
descriptor: (I)[Ljava/beans/WeakIdentityMap$Entry;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
anewarray java.beans.WeakIdentityMap$Entry
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/beans/WeakIdentityMap<TT;>;
0 1 1 length I
Signature: (I)[Ljava/beans/WeakIdentityMap$Entry<TT;>;
MethodParameters:
Name Flags
length
private static int getIndex(java.beans.WeakIdentityMap$Entry<?>[], );
descriptor: ([Ljava/beans/WeakIdentityMap$Entry;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
arraylength
iconst_1
isub
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 table [Ljava/beans/WeakIdentityMap$Entry;
0 1 1 hash I
Signature: ([Ljava/beans/WeakIdentityMap$Entry<*>;I)I
MethodParameters:
Name Flags
table
hash
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "WeakIdentityMap.java"
NestMembers:
java.beans.WeakIdentityMap$Entry
InnerClasses:
private Entry = java.beans.WeakIdentityMap$Entry of java.beans.WeakIdentityMap