abstract class com.google.common.collect.MapMakerInternalMap$Segment<K, V, E extends com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, E>, S extends com.google.common.collect.MapMakerInternalMap$Segment<K, V, E, S>> extends java.util.concurrent.locks.ReentrantLock
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.google.common.collect.MapMakerInternalMap$Segment
super_class: java.util.concurrent.locks.ReentrantLock
{
final com.google.common.collect.MapMakerInternalMap<K, V, E, S> map;
descriptor: Lcom/google/common/collect/MapMakerInternalMap;
flags: (0x0010) ACC_FINAL
Signature: Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>;
RuntimeInvisibleAnnotations:
com.google.j2objc.annotations.Weak()
volatile int count;
descriptor: I
flags: (0x0040) ACC_VOLATILE
int modCount;
descriptor: I
flags: (0x0000)
int threshold;
descriptor: I
flags: (0x0000)
volatile java.util.concurrent.atomic.AtomicReferenceArray<E> table;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceArray;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
final int maxSegmentSize;
descriptor: I
flags: (0x0010) ACC_FINAL
final java.util.concurrent.atomic.AtomicInteger readCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
void <init>(com.google.common.collect.MapMakerInternalMap<K, V, E, S>, int, );
descriptor: (Lcom/google/common/collect/MapMakerInternalMap;II)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield com.google.common.collect.MapMakerInternalMap$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
2: aload 0
aload 1
putfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
3: aload 0
iload 3
putfield com.google.common.collect.MapMakerInternalMap$Segment.maxSegmentSize:I
4: aload 0
aload 0
iload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.newEntryArray:(I)Ljava/util/concurrent/atomic/AtomicReferenceArray;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.initTable:(Ljava/util/concurrent/atomic/AtomicReferenceArray;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 6 1 map Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>;
0 6 2 initialCapacity I
0 6 3 maxSegmentSize I
Signature: (Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>;II)V
MethodParameters:
Name Flags
map
initialCapacity
maxSegmentSize
abstract S self();
descriptor: ()Lcom/google/common/collect/MapMakerInternalMap$Segment;
flags: (0x0400) ACC_ABSTRACT
Signature: ()TS;
void maybeDrainReferenceQueues();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
void maybeClearReferenceQueues();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
void setValue(E, );
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.entryHelper:Lcom/google/common/collect/MapMakerInternalMap$InternalEntryHelper;
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.self:()Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 1
aload 2
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntryHelper.setValue:(Lcom/google/common/collect/MapMakerInternalMap$Segment;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 2 1 entry TE;
0 2 2 value TV;
Signature: (TE;TV;)V
MethodParameters:
Name Flags
entry
value
E copyEntry(E, );
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.entryHelper:Lcom/google/common/collect/MapMakerInternalMap$InternalEntryHelper;
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.self:()Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 1
aload 2
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntryHelper.copy:(Lcom/google/common/collect/MapMakerInternalMap$Segment;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 original TE;
0 1 2 newNext TE;
Signature: (TE;TE;)TE;
MethodParameters:
Name Flags
original
newNext
java.util.concurrent.atomic.AtomicReferenceArray<E> newEntryArray(int);
descriptor: (I)Ljava/util/concurrent/atomic/AtomicReferenceArray;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.util.concurrent.atomic.AtomicReferenceArray
dup
iload 1
invokespecial java.util.concurrent.atomic.AtomicReferenceArray.<init>:(I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 size I
Signature: (I)Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
MethodParameters:
Name Flags
size
void initTable(java.util.concurrent.atomic.AtomicReferenceArray<E>);
descriptor: (Ljava/util/concurrent/atomic/AtomicReferenceArray;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_3
imul
iconst_4
idiv
putfield com.google.common.collect.MapMakerInternalMap$Segment.threshold:I
1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.threshold:I
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.maxSegmentSize:I
if_icmpne 3
2: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.threshold:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.threshold:I
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 5 1 newTable Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
Signature: (Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;)V
MethodParameters:
Name Flags
newTable
abstract E castForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0400) ACC_ABSTRACT
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)TE;
MethodParameters:
Name Flags
entry
java.lang.ref.ReferenceQueue<K> getKeyReferenceQueueForTesting();
descriptor: ()Ljava/lang/ref/ReferenceQueue;
flags: (0x0000)
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 Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
Signature: ()Ljava/lang/ref/ReferenceQueue<TK;>;
java.lang.ref.ReferenceQueue<V> getValueReferenceQueueForTesting();
descriptor: ()Ljava/lang/ref/ReferenceQueue;
flags: (0x0000)
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 Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
Signature: ()Ljava/lang/ref/ReferenceQueue<TV;>;
com.google.common.collect.MapMakerInternalMap$WeakValueReference<K, V, E> getWeakValueReferenceForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;
MethodParameters:
Name Flags
entry
com.google.common.collect.MapMakerInternalMap$WeakValueReference<K, V, E> newWeakValueReferenceForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>, V);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
0 1 2 value TV;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;TV;)Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;
MethodParameters:
Name Flags
entry
value
void setWeakValueReferenceForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>, com.google.common.collect.MapMakerInternalMap$WeakValueReference<K, V, ? extends com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
0 1 2 valueReference Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;+Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;>;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;+Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;>;)V
MethodParameters:
Name Flags
entry
valueReference
void setTableEntryForTesting(int, com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (ILcom/google/common/collect/MapMakerInternalMap$InternalEntry;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
iload 1
aload 0
aload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 2 1 i I
0 2 2 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (ILcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)V
MethodParameters:
Name Flags
i
entry
E copyForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>, com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.entryHelper:Lcom/google/common/collect/MapMakerInternalMap$InternalEntryHelper;
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.self:()Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 0
aload 1
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
aload 0
aload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntryHelper.copy:(Lcom/google/common/collect/MapMakerInternalMap$Segment;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
0 1 2 newNext Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)TE;
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
entry
newNext
void setValueForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>, );
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.entryHelper:Lcom/google/common/collect/MapMakerInternalMap$InternalEntryHelper;
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.self:()Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 0
aload 1
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
aload 2
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntryHelper.setValue:(Lcom/google/common/collect/MapMakerInternalMap$Segment;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 2 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
0 2 2 value TV;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;TV;)V
MethodParameters:
Name Flags
entry
value
E newEntryForTesting(K, int, com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.entryHelper:Lcom/google/common/collect/MapMakerInternalMap$InternalEntryHelper;
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.self:()Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 1
iload 2
aload 0
aload 3
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntryHelper.newEntry:(Lcom/google/common/collect/MapMakerInternalMap$Segment;Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 key TK;
0 1 2 hash I
0 1 3 next Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (TK;ILcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)TE;
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
next
boolean removeTableEntryForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeEntryForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
entry
E removeFromChainForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>, com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
aload 1
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
aload 0
aload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 first Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
0 1 2 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)TE;
MethodParameters:
Name Flags
first
entry
V getLiveValueForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.castForTesting:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.getLiveValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 entry Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;
Signature: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
entry
void tryDrainReferenceQueues();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.tryLock:()Z
ifeq 7
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.maybeDrainReferenceQueues:()V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
Exception table:
from to target type
1 3 3 any
void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue<K>);
descriptor: (Ljava/lang/ref/ReferenceQueue;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: goto 6
start local 2 2: StackMap locals: java.lang.ref.Reference int
StackMap stack:
aload 2
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 4
start local 4 3: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
aload 4
invokevirtual com.google.common.collect.MapMakerInternalMap.reclaimKey:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)V
4: iinc 3 1
iload 3
bipush 16
if_icmpne 6
5: goto 8
end local 4 end local 2 6: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.ref.ReferenceQueue top int
StackMap stack:
aload 1
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 2
start local 2 7: ifnonnull 2
8: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.ref.ReferenceQueue java.lang.ref.Reference int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 9 1 keyReferenceQueue Ljava/lang/ref/ReferenceQueue<TK;>;
2 6 2 ref Ljava/lang/ref/Reference<+TK;>;
7 9 2 ref Ljava/lang/ref/Reference<+TK;>;
1 9 3 i I
3 6 4 entry TE;
Signature: (Ljava/lang/ref/ReferenceQueue<TK;>;)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
keyReferenceQueue
void drainValueReferenceQueue(java.lang.ref.ReferenceQueue<V>);
descriptor: (Ljava/lang/ref/ReferenceQueue;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: goto 6
start local 2 2: StackMap locals: java.lang.ref.Reference int
StackMap stack:
aload 2
checkcast com.google.common.collect.MapMakerInternalMap$WeakValueReference
astore 4
start local 4 3: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
aload 4
invokevirtual com.google.common.collect.MapMakerInternalMap.reclaimValue:(Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;)V
4: iinc 3 1
iload 3
bipush 16
if_icmpne 6
5: goto 8
end local 4 end local 2 6: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.ref.ReferenceQueue top int
StackMap stack:
aload 1
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 2
start local 2 7: ifnonnull 2
8: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.ref.ReferenceQueue java.lang.ref.Reference int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 9 1 valueReferenceQueue Ljava/lang/ref/ReferenceQueue<TV;>;
2 6 2 ref Ljava/lang/ref/Reference<+TV;>;
7 9 2 ref Ljava/lang/ref/Reference<+TV;>;
1 9 3 i I
3 6 4 valueReference Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;
Signature: (Ljava/lang/ref/ReferenceQueue<TV;>;)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
valueReferenceQueue
<T> void clearReferenceQueue(java.lang.ref.ReferenceQueue<T>);
descriptor: (Ljava/lang/ref/ReferenceQueue;)V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
ifnonnull 0
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 2 1 referenceQueue Ljava/lang/ref/ReferenceQueue<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/ref/ReferenceQueue<TT;>;)V
MethodParameters:
Name Flags
referenceQueue
E getFirst();
descriptor: (I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 2
start local 2 1: aload 2
iload 1
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 2 1 hash I
1 2 2 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
Signature: (I)TE;
MethodParameters:
Name Flags
hash
E getEntry(, );
descriptor: (Ljava/lang/Object;I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
ifeq 13
1: aload 0
iload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.getFirst:(I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 3
start local 3 2: goto 12
3: StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 3
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpeq 5
4: goto 11
5: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 4
start local 4 6: aload 4
ifnonnull 9
7: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.tryDrainReferenceQueues:()V
8: goto 11
9: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 4
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 11
10: aload 3
areturn
end local 4 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 3
StackMap locals:
StackMap stack:
12: aload 3
ifnonnull 3
end local 3 13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 14 1 key Ljava/lang/Object;
0 14 2 hash I
2 13 3 e TE;
6 11 4 entryKey TK;
Signature: (Ljava/lang/Object;I)TE;
MethodParameters:
Name Flags
key
hash
E getLiveEntry(, );
descriptor: (Ljava/lang/Object;I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.getEntry:(Ljava/lang/Object;I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 1 1 key Ljava/lang/Object;
0 1 2 hash I
Signature: (Ljava/lang/Object;I)TE;
MethodParameters:
Name Flags
key
hash
V get(, );
descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.getLiveEntry:(Ljava/lang/Object;I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 3
start local 3 1: aload 3
ifnonnull 4
2: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
3: aconst_null
areturn
4: StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 3
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 4
start local 4 5: aload 4
ifnonnull 7
6: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.tryDrainReferenceQueues:()V
7: StackMap locals: java.lang.Object
StackMap stack:
aload 4
astore 6
8: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
9: aload 6
areturn
end local 4 end local 3 10: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int
StackMap stack: java.lang.Throwable
astore 5
11: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
12: aload 5
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 13 1 key Ljava/lang/Object;
0 13 2 hash I
1 10 3 e TE;
5 10 4 value TV;
Exception table:
from to target type
0 2 10 any
4 8 10 any
Signature: (Ljava/lang/Object;I)TV;
MethodParameters:
Name Flags
key
hash
boolean containsKey(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Z
flags: (0x0000)
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
ifeq 7
1: aload 0
aload 1
iload 2
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.getLiveEntry:(Ljava/lang/Object;I)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
ifnull 3
iconst_1
goto 4
StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 5
5: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
6: iload 5
ireturn
end local 3 7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
10: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
11: aload 4
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 12 1 key Ljava/lang/Object;
0 12 2 hash I
2 7 3 e TE;
Exception table:
from to target type
0 5 9 any
MethodParameters:
Name Flags
key
hash
boolean containsValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0000)
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
ifeq 17
1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 2
start local 2 2: aload 2
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 16
5: StackMap locals: java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
aload 2
iload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 5
start local 5 6: goto 14
7: StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 0
aload 5
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.getLiveValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Ljava/lang/Object;
astore 6
start local 6 8: aload 6
ifnonnull 10
9: goto 13
10: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
invokevirtual com.google.common.collect.MapMakerInternalMap.valueEquivalence:()Lcom/google/common/base/Equivalence;
aload 1
aload 6
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 13
11: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
12: iconst_1
ireturn
end local 6 13: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 5
StackMap locals:
StackMap stack:
14: aload 5
ifnonnull 7
end local 5 15: iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
iload 3
if_icmplt 5
end local 4 end local 3 end local 2 17: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
18: iconst_0
ireturn
19: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
20: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
21: aload 7
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 22 1 value Ljava/lang/Object;
2 17 2 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
3 17 3 length I
4 17 4 i I
6 15 5 e TE;
8 13 6 entryValue TV;
Exception table:
from to target type
0 11 19 any
13 17 19 any
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
value
V put(K, int, V, );
descriptor: (Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
iadd
istore 5
start local 5 3: iload 5
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.threshold:I
if_icmple 6
4: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.expand:()V
5: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
iadd
istore 5
6: StackMap locals: int
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 6
start local 6 7: iload 2
aload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 7
start local 7 8: aload 6
iload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 8
start local 8 9: aload 8
astore 9
start local 9 10: goto 33
11: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object int int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 9
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 10
start local 10 12: aload 9
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 32
13: aload 10
ifnull 32
14: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 10
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 32
15: aload 9
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 11
start local 11 16: aload 11
ifnonnull 23
17: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
18: aload 0
aload 9
aload 3
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.setValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
19: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
istore 5
20: aload 0
iload 5
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
21: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
22: aconst_null
areturn
23: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
iload 4
ifeq 27
24: aload 11
astore 13
25: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
26: aload 13
areturn
27: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
28: aload 0
aload 9
aload 3
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.setValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
29: aload 11
astore 13
30: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
31: aload 13
areturn
end local 11 end local 10 32: StackMap locals:
StackMap stack:
aload 9
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 9
StackMap locals:
StackMap stack:
33: aload 9
ifnonnull 11
end local 9 34: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
35: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.entryHelper:Lcom/google/common/collect/MapMakerInternalMap$InternalEntryHelper;
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.self:()Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 1
iload 2
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntryHelper.newEntry:(Lcom/google/common/collect/MapMakerInternalMap$Segment;Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 9
start local 9 36: aload 0
aload 9
aload 3
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.setValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
37: aload 6
iload 7
aload 9
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
38: aload 0
iload 5
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
39: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
40: aconst_null
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 41: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object int
StackMap stack: java.lang.Throwable
astore 12
42: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
43: aload 12
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 44 1 key TK;
0 44 2 hash I
0 44 3 value TV;
0 44 4 onlyIfAbsent Z
3 41 5 newCount I
7 41 6 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
8 41 7 index I
9 41 8 first TE;
10 34 9 e TE;
12 32 10 entryKey TK;
16 32 11 entryValue TV;
36 41 9 newEntry TE;
Exception table:
from to target type
1 21 41 any
23 25 41 any
27 30 41 any
32 39 41 any
Signature: (TK;ITV;Z)TV;
MethodParameters:
Name Flags
key
hash
value
onlyIfAbsent
void expand();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=16, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 1
start local 1 1: aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
istore 2
start local 2 2: iload 2
ldc 1073741824
if_icmplt 4
3: return
4: StackMap locals: java.util.concurrent.atomic.AtomicReferenceArray int
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
istore 3
start local 3 5: aload 0
iload 2
iconst_1
ishl
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.newEntryArray:(I)Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 6: aload 0
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_3
imul
iconst_4
idiv
putfield com.google.common.collect.MapMakerInternalMap$Segment.threshold:I
7: aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
istore 5
start local 5 8: iconst_0
istore 6
start local 6 9: goto 40
10: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.util.concurrent.atomic.AtomicReferenceArray int int java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
aload 1
iload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 7
start local 7 11: aload 7
ifnull 39
12: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 8
start local 8 13: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 5
iand
istore 9
start local 9 14: aload 8
ifnonnull 17
15: aload 4
iload 9
aload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
16: goto 39
17: StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry int
StackMap stack:
aload 7
astore 10
start local 10 18: iload 9
istore 11
start local 11 19: aload 8
astore 12
start local 12 20: goto 26
21: StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry int com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 12
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 5
iand
istore 13
start local 13 22: iload 13
iload 11
if_icmpeq 25
23: iload 13
istore 11
24: aload 12
astore 10
end local 13 25: StackMap locals:
StackMap stack:
aload 12
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 12
StackMap locals:
StackMap stack:
26: aload 12
ifnonnull 21
end local 12 27: aload 4
iload 11
aload 10
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
28: aload 7
astore 12
start local 12 29: goto 38
30: StackMap locals:
StackMap stack:
aload 12
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 5
iand
istore 13
start local 13 31: aload 4
iload 13
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 14
start local 14 32: aload 0
aload 12
aload 14
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.copyEntry:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 15
start local 15 33: aload 15
ifnull 36
34: aload 4
iload 13
aload 15
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
35: goto 37
36: StackMap locals: int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
iinc 3 -1
end local 15 end local 14 end local 13 37: StackMap locals:
StackMap stack:
aload 12
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 12
StackMap locals:
StackMap stack:
38: aload 12
aload 10
if_acmpne 30
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 39: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.util.concurrent.atomic.AtomicReferenceArray int int java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
40: iload 6
iload 2
if_icmplt 10
end local 6 41: aload 0
aload 4
putfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
42: aload 0
iload 3
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
43: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
1 44 1 oldTable Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
2 44 2 oldCapacity I
5 44 3 newCount I
6 44 4 newTable Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
8 44 5 newMask I
9 41 6 oldIndex I
11 39 7 head TE;
13 39 8 next TE;
14 39 9 headIndex I
18 39 10 tail TE;
19 39 11 tailIndex I
20 27 12 e TE;
22 25 13 newIndex I
29 39 12 e TE;
31 37 13 newIndex I
32 37 14 newNext TE;
33 37 15 newFirst TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
boolean replace(K, int, V, );
descriptor: (Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0000)
Code:
stack=3, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 5
start local 5 3: iload 2
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 6
start local 6 4: aload 5
iload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 7
start local 7 5: aload 7
astore 8
start local 8 6: goto 30
7: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object java.lang.Object java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 9
start local 9 8: aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 29
9: aload 9
ifnull 29
10: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 9
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 29
11: aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 10
start local 10 12: aload 10
ifnonnull 22
13: aload 8
invokestatic com.google.common.collect.MapMakerInternalMap$Segment.isCollected:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ifeq 20
14: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 11
start local 11 15: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
16: aload 0
aload 7
aload 8
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 12
start local 12 17: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 11
18: aload 5
iload 6
aload 12
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
19: aload 0
iload 11
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
end local 12 end local 11 20: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
21: iconst_0
ireturn
22: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
invokevirtual com.google.common.collect.MapMakerInternalMap.valueEquivalence:()Lcom/google/common/base/Equivalence;
aload 3
aload 10
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 27
23: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
24: aload 0
aload 8
aload 4
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.setValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
25: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
26: iconst_1
ireturn
27: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
28: iconst_0
ireturn
end local 10 end local 9 29: StackMap locals:
StackMap stack:
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 8
StackMap locals:
StackMap stack:
30: aload 8
ifnonnull 7
end local 8 31: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
32: iconst_0
ireturn
end local 7 end local 6 end local 5 33: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
astore 13
34: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
35: aload 13
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 36 1 key TK;
0 36 2 hash I
0 36 3 oldValue TV;
0 36 4 newValue TV;
3 33 5 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
4 33 6 index I
5 33 7 first TE;
6 31 8 e TE;
8 29 9 entryKey TK;
12 29 10 entryValue TV;
15 20 11 newCount I
17 20 12 newFirst TE;
Exception table:
from to target type
1 20 33 any
22 25 33 any
29 31 33 any
Signature: (TK;ITV;TV;)Z
MethodParameters:
Name Flags
key
hash
oldValue
newValue
V replace(K, int, );
descriptor: (Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 3: iload 2
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 5
start local 5 4: aload 4
iload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 6
start local 6 5: aload 6
astore 7
start local 7 6: goto 28
7: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 8
start local 8 8: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 27
9: aload 8
ifnull 27
10: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 8
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 27
11: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 9
start local 9 12: aload 9
ifnonnull 22
13: aload 7
invokestatic com.google.common.collect.MapMakerInternalMap$Segment.isCollected:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ifeq 20
14: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 10
start local 10 15: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
16: aload 0
aload 6
aload 7
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 11
start local 11 17: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 10
18: aload 4
iload 5
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
19: aload 0
iload 10
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
end local 11 end local 10 20: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
21: aconst_null
areturn
22: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
23: aload 0
aload 7
aload 3
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.setValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Ljava/lang/Object;)V
24: aload 9
astore 13
25: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
26: aload 13
areturn
end local 9 end local 8 27: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 7
StackMap locals:
StackMap stack:
28: aload 7
ifnonnull 7
end local 7 29: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
30: aconst_null
areturn
end local 6 end local 5 end local 4 31: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
astore 12
32: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
33: aload 12
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 34 1 key TK;
0 34 2 hash I
0 34 3 newValue TV;
3 31 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
4 31 5 index I
5 31 6 first TE;
6 29 7 e TE;
8 27 8 entryKey TK;
12 27 9 entryValue TV;
15 20 10 newCount I
17 20 11 newFirst TE;
Exception table:
from to target type
1 20 31 any
22 25 31 any
27 29 31 any
Signature: (TK;ITV;)TV;
MethodParameters:
Name Flags
key
hash
newValue
V remove(, );
descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 3
start local 3 3: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 4: iload 2
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 5
start local 5 5: aload 4
iload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 6
start local 6 6: aload 6
astore 7
start local 7 7: goto 26
8: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 8
start local 8 9: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 25
10: aload 8
ifnull 25
11: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 8
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 25
12: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 9
start local 9 13: aload 9
ifnonnull 17
14: aload 7
invokestatic com.google.common.collect.MapMakerInternalMap$Segment.isCollected:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ifne 17
15: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
16: aconst_null
areturn
17: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
18: aload 0
aload 6
aload 7
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 10
start local 10 19: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 3
20: aload 4
iload 5
aload 10
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
21: aload 0
iload 3
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
22: aload 9
astore 12
23: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
24: aload 12
areturn
end local 10 end local 9 end local 8 25: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 7
StackMap locals:
StackMap stack:
26: aload 7
ifnonnull 8
end local 7 27: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
28: aconst_null
areturn
end local 6 end local 5 end local 4 end local 3 29: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int
StackMap stack: java.lang.Throwable
astore 11
30: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
31: aload 11
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 32 1 key Ljava/lang/Object;
0 32 2 hash I
3 29 3 newCount I
4 29 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
5 29 5 index I
6 29 6 first TE;
7 27 7 e TE;
9 25 8 entryKey TK;
13 25 9 entryValue TV;
19 25 10 newFirst TE;
Exception table:
from to target type
1 15 29 any
17 23 29 any
25 27 29 any
Signature: (Ljava/lang/Object;I)TV;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
key
hash
boolean remove(java.lang.Object, int, java.lang.Object);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;)Z
flags: (0x0000)
Code:
stack=3, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 4
start local 4 3: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 5
start local 5 4: iload 2
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 6
start local 6 5: aload 5
iload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 7
start local 7 6: aload 7
astore 8
start local 8 7: goto 29
8: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 9
start local 9 9: aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 28
10: aload 9
ifnull 28
11: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 9
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 28
12: aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 10
start local 10 13: iconst_0
istore 11
start local 11 14: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
invokevirtual com.google.common.collect.MapMakerInternalMap.valueEquivalence:()Lcom/google/common/base/Equivalence;
aload 3
aload 10
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 17
15: iconst_1
istore 11
16: goto 20
StackMap locals: java.lang.Object java.lang.Object int
StackMap stack:
17: aload 8
invokestatic com.google.common.collect.MapMakerInternalMap$Segment.isCollected:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ifne 20
18: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
19: iconst_0
ireturn
20: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
21: aload 0
aload 7
aload 8
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 12
start local 12 22: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 4
23: aload 5
iload 6
aload 12
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
24: aload 0
iload 4
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
25: iload 11
istore 14
26: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
27: iload 14
ireturn
end local 12 end local 11 end local 10 end local 9 28: StackMap locals:
StackMap stack:
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 8
StackMap locals:
StackMap stack:
29: aload 8
ifnonnull 8
end local 8 30: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
31: iconst_0
ireturn
end local 7 end local 6 end local 5 end local 4 32: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
astore 13
33: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
34: aload 13
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 35 1 key Ljava/lang/Object;
0 35 2 hash I
0 35 3 value Ljava/lang/Object;
3 32 4 newCount I
4 32 5 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
5 32 6 index I
6 32 7 first TE;
7 30 8 e TE;
9 28 9 entryKey TK;
13 28 10 entryValue TV;
14 28 11 explicitRemoval Z
22 28 12 newFirst TE;
Exception table:
from to target type
1 18 32 any
20 26 32 any
28 30 32 any
MethodParameters:
Name Flags
key
hash
value
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
ifeq 17
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 1
start local 1 3: iconst_0
istore 2
start local 2 4: goto 7
5: StackMap locals: java.util.concurrent.atomic.AtomicReferenceArray int
StackMap stack:
aload 1
iload 2
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
if_icmplt 5
end local 2 8: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.maybeClearReferenceQueues:()V
9: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
10: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
11: aload 0
iconst_0
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
end local 1 12: goto 16
StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment
StackMap stack: java.lang.Throwable
13: astore 3
14: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
15: aload 3
athrow
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
3 12 1 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
4 8 2 i I
Exception table:
from to target type
2 13 13 any
E removeFromChain(E, );
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
istore 3
start local 3 1: aload 2
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 4
start local 4 2: aload 1
astore 5
start local 5 3: goto 10
4: StackMap locals: int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 0
aload 5
aload 4
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.copyEntry:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 6
start local 6 5: aload 6
ifnull 8
6: aload 6
astore 4
7: goto 9
8: StackMap locals: com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
iinc 3 -1
end local 6 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 5
StackMap locals:
StackMap stack:
10: aload 5
aload 2
if_acmpne 4
end local 5 11: aload 0
iload 3
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
12: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 13 1 first TE;
0 13 2 entry TE;
1 13 3 newCount I
2 13 4 newFirst TE;
3 11 5 e TE;
5 9 6 next TE;
Signature: (TE;TE;)TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
first
entry
boolean reclaimKey(E, );
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;I)Z
flags: (0x0000)
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 3
start local 3 2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 3: iload 2
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 5
start local 5 4: aload 4
iload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 6
start local 6 5: aload 6
astore 7
start local 7 6: goto 16
7: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment com.google.common.collect.MapMakerInternalMap$InternalEntry int int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 7
aload 1
if_acmpne 15
8: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
9: aload 0
aload 6
aload 7
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 8
start local 8 10: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 3
11: aload 4
iload 5
aload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
12: aload 0
iload 3
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
13: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
14: iconst_1
ireturn
end local 8 15: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 7
StackMap locals:
StackMap stack:
16: aload 7
ifnonnull 7
end local 7 17: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
18: iconst_0
ireturn
end local 6 end local 5 end local 4 end local 3 19: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment com.google.common.collect.MapMakerInternalMap$InternalEntry int
StackMap stack: java.lang.Throwable
astore 9
20: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
21: aload 9
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 22 1 entry TE;
0 22 2 hash I
2 19 3 newCount I
3 19 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
4 19 5 index I
5 19 6 first TE;
6 17 7 e TE;
10 15 8 newFirst TE;
Exception table:
from to target type
1 13 19 any
15 17 19 any
Signature: (TE;I)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
entry
hash
boolean reclaimValue(K, int, com.google.common.collect.MapMakerInternalMap$WeakValueReference<K, V, E>);
descriptor: (Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$WeakValueReference;)Z
flags: (0x0000)
Code:
stack=3, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 4
start local 4 2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 5
start local 5 3: iload 2
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 6
start local 6 4: aload 5
iload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 7
start local 7 5: aload 7
astore 8
start local 8 6: goto 23
7: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int com.google.common.collect.MapMakerInternalMap$WeakValueReference int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 9
start local 9 8: aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 22
9: aload 9
ifnull 22
10: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 9
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 22
11: aload 8
checkcast com.google.common.collect.MapMakerInternalMap$WeakValueEntry
invokeinterface com.google.common.collect.MapMakerInternalMap$WeakValueEntry.getValueReference:()Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;
astore 10
start local 10 12: aload 10
aload 3
if_acmpne 20
13: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
14: aload 0
aload 7
aload 8
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 11
start local 11 15: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 4
16: aload 5
iload 6
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
17: aload 0
iload 4
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
18: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
19: iconst_1
ireturn
end local 11 20: StackMap locals: java.lang.Object com.google.common.collect.MapMakerInternalMap$WeakValueReference
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
21: iconst_0
ireturn
end local 10 end local 9 22: StackMap locals:
StackMap stack:
aload 8
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 8
StackMap locals:
StackMap stack:
23: aload 8
ifnonnull 7
end local 8 24: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
25: iconst_0
ireturn
end local 7 end local 6 end local 5 end local 4 26: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int com.google.common.collect.MapMakerInternalMap$WeakValueReference
StackMap stack: java.lang.Throwable
astore 12
27: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
28: aload 12
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 29 1 key TK;
0 29 2 hash I
0 29 3 valueReference Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;
2 26 4 newCount I
3 26 5 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
4 26 6 index I
5 26 7 first TE;
6 24 8 e TE;
8 22 9 entryKey TK;
12 22 10 v Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;
15 20 11 newFirst TE;
Exception table:
from to target type
1 18 26 any
22 24 26 any
Signature: (TK;ILcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
key
hash
valueReference
boolean clearValueForTesting(K, int, com.google.common.collect.MapMakerInternalMap$WeakValueReference<K, V, ? extends com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, ?>>);
descriptor: (Ljava/lang/Object;ILcom/google/common/collect/MapMakerInternalMap$WeakValueReference;)Z
flags: (0x0000)
Code:
stack=3, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.lock:()V
1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 2: iload 2
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 5
start local 5 3: aload 4
iload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 6
start local 6 4: aload 6
astore 7
start local 7 5: goto 19
6: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int com.google.common.collect.MapMakerInternalMap$WeakValueReference java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 8
start local 8 7: aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
iload 2
if_icmpne 18
8: aload 8
ifnull 18
9: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.map:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 8
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 18
10: aload 7
checkcast com.google.common.collect.MapMakerInternalMap$WeakValueEntry
invokeinterface com.google.common.collect.MapMakerInternalMap$WeakValueEntry.getValueReference:()Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference;
astore 9
start local 9 11: aload 9
aload 3
if_acmpne 16
12: aload 0
aload 6
aload 7
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 10
start local 10 13: aload 4
iload 5
aload 10
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
14: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
15: iconst_1
ireturn
end local 10 16: StackMap locals: java.lang.Object com.google.common.collect.MapMakerInternalMap$WeakValueReference
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
17: iconst_0
ireturn
end local 9 end local 8 18: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 7
StackMap locals:
StackMap stack:
19: aload 7
ifnonnull 6
end local 7 20: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
21: iconst_0
ireturn
end local 6 end local 5 end local 4 22: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment java.lang.Object int com.google.common.collect.MapMakerInternalMap$WeakValueReference
StackMap stack: java.lang.Throwable
astore 11
23: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
24: aload 11
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 25 1 key TK;
0 25 2 hash I
0 25 3 valueReference Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;+Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;>;
2 22 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
3 22 5 index I
4 22 6 first TE;
5 20 7 e TE;
7 18 8 entryKey TK;
11 18 9 v Lcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;TE;>;
13 16 10 newFirst TE;
Exception table:
from to target type
1 14 22 any
18 20 22 any
Signature: (TK;ILcom/google/common/collect/MapMakerInternalMap$WeakValueReference<TK;TV;+Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;*>;>;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
key
hash
valueReference
boolean removeEntryForTesting();
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
flags: (0x0000)
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getHash:()I
istore 2
start local 2 1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 3
start local 3 2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 3: iload 2
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 5
start local 5 4: aload 4
iload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
astore 6
start local 6 5: aload 6
astore 7
start local 7 6: goto 15
7: StackMap locals: com.google.common.collect.MapMakerInternalMap$Segment com.google.common.collect.MapMakerInternalMap$InternalEntry int int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.collect.MapMakerInternalMap$InternalEntry com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack:
aload 7
aload 1
if_acmpne 14
8: aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MapMakerInternalMap$Segment.modCount:I
9: aload 0
aload 6
aload 7
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.removeFromChain:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 8
start local 8 10: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
iconst_1
isub
istore 3
11: aload 4
iload 5
aload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
12: aload 0
iload 3
putfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
13: iconst_1
ireturn
end local 8 14: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
astore 7
StackMap locals:
StackMap stack:
15: aload 7
ifnonnull 7
end local 7 16: iconst_0
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 17 1 entry TE;
1 17 2 hash I
2 17 3 newCount I
3 17 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
4 17 5 index I
5 17 6 first TE;
6 16 7 e TE;
10 14 8 newFirst TE;
Signature: (TE;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
entry
static <K, V, E extends com.google.common.collect.MapMakerInternalMap$InternalEntry<K, V, E>> boolean isCollected();
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
ifnonnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 entry TE;
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;E::Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;TE;>;>(TE;)Z
MethodParameters:
Name Flags
entry
V getLiveValue();
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
ifnonnull 3
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.tryDrainReferenceQueues:()V
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getValue:()Ljava/lang/Object;
astore 2
start local 2 4: aload 2
ifnonnull 7
5: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.tryDrainReferenceQueues:()V
6: aconst_null
areturn
7: StackMap locals: java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
0 8 1 entry TE;
4 8 2 value TV;
Signature: (TE;)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
entry
void postReadCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
bipush 63
iand
ifne 2
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.runCleanup:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
void preWriteCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.runLockedCleanup:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
void runCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.runLockedCleanup:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
void runLockedCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.tryLock:()Z
ifeq 8
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.maybeDrainReferenceQueues:()V
2: aload 0
getfield com.google.common.collect.MapMakerInternalMap$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
5: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.unlock:()V
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
Exception table:
from to target type
1 4 4 any
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;E::Lcom/google/common/collect/MapMakerInternalMap$InternalEntry<TK;TV;TE;>;S:Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;>Ljava/util/concurrent/locks/ReentrantLock;
SourceFile: "MapMakerInternalMap.java"
NestHost: com.google.common.collect.MapMakerInternalMap
InnerClasses:
abstract InternalEntry = com.google.common.collect.MapMakerInternalMap$InternalEntry of com.google.common.collect.MapMakerInternalMap
abstract InternalEntryHelper = com.google.common.collect.MapMakerInternalMap$InternalEntryHelper of com.google.common.collect.MapMakerInternalMap
abstract Segment = com.google.common.collect.MapMakerInternalMap$Segment of com.google.common.collect.MapMakerInternalMap
abstract WeakValueEntry = com.google.common.collect.MapMakerInternalMap$WeakValueEntry of com.google.common.collect.MapMakerInternalMap
abstract WeakValueReference = com.google.common.collect.MapMakerInternalMap$WeakValueReference of com.google.common.collect.MapMakerInternalMap