class com.google.common.cache.LocalCache$Segment<K, V> extends java.util.concurrent.locks.ReentrantLock
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.google.common.cache.LocalCache$Segment
super_class: java.util.concurrent.locks.ReentrantLock
{
final com.google.common.cache.LocalCache<K, V> map;
descriptor: Lcom/google/common/cache/LocalCache;
flags: (0x0010) ACC_FINAL
Signature: Lcom/google/common/cache/LocalCache<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.j2objc.annotations.Weak()
volatile int count;
descriptor: I
flags: (0x0040) ACC_VOLATILE
long totalWeight;
descriptor: J
flags: (0x0000)
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
int modCount;
descriptor: I
flags: (0x0000)
int threshold;
descriptor: I
flags: (0x0000)
volatile java.util.concurrent.atomic.AtomicReferenceArray<com.google.common.cache.ReferenceEntry<K, V>> table;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceArray;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.MonotonicNonNull()
final long maxSegmentWeight;
descriptor: J
flags: (0x0010) ACC_FINAL
final java.lang.ref.ReferenceQueue<K> keyReferenceQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<TK;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
final java.lang.ref.ReferenceQueue<V> valueReferenceQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<TV;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
final java.util.Queue<com.google.common.cache.ReferenceEntry<K, V>> recencyQueue;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
final java.util.concurrent.atomic.AtomicInteger readCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
final java.util.Queue<com.google.common.cache.ReferenceEntry<K, V>> writeQueue;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
final java.util.Queue<com.google.common.cache.ReferenceEntry<K, V>> accessQueue;
descriptor: Ljava/util/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Queue<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
final com.google.common.cache.AbstractCache$StatsCounter statsCounter;
descriptor: Lcom/google/common/cache/AbstractCache$StatsCounter;
flags: (0x0010) ACC_FINAL
void <init>(com.google.common.cache.LocalCache<K, V>, int, long, com.google.common.cache.AbstractCache$StatsCounter);
descriptor: (Lcom/google/common/cache/LocalCache;IJLcom/google/common/cache/AbstractCache$StatsCounter;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 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.cache.LocalCache$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
2: aload 0
aload 1
putfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
3: aload 0
lload 3
putfield com.google.common.cache.LocalCache$Segment.maxSegmentWeight:J
4: aload 0
aload 5
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.cache.AbstractCache$StatsCounter
putfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
5: aload 0
aload 0
iload 2
invokevirtual com.google.common.cache.LocalCache$Segment.newEntryArray:(I)Ljava/util/concurrent/atomic/AtomicReferenceArray;
invokevirtual com.google.common.cache.LocalCache$Segment.initTable:(Ljava/util/concurrent/atomic/AtomicReferenceArray;)V
6: aload 0
aload 1
invokevirtual com.google.common.cache.LocalCache.usesKeyReferences:()Z
ifeq 7
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
goto 8
StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.LocalCache int long com.google.common.cache.AbstractCache$StatsCounter
StackMap stack: com.google.common.cache.LocalCache$Segment
7: aconst_null
StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.LocalCache int long com.google.common.cache.AbstractCache$StatsCounter
StackMap stack: com.google.common.cache.LocalCache$Segment java.lang.ref.ReferenceQueue
8: putfield com.google.common.cache.LocalCache$Segment.keyReferenceQueue:Ljava/lang/ref/ReferenceQueue;
9: aload 0
aload 1
invokevirtual com.google.common.cache.LocalCache.usesValueReferences:()Z
ifeq 10
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
goto 11
StackMap locals:
StackMap stack: com.google.common.cache.LocalCache$Segment
10: aconst_null
StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.LocalCache int long com.google.common.cache.AbstractCache$StatsCounter
StackMap stack: com.google.common.cache.LocalCache$Segment java.lang.ref.ReferenceQueue
11: putfield com.google.common.cache.LocalCache$Segment.valueReferenceQueue:Ljava/lang/ref/ReferenceQueue;
12: aload 0
13: aload 1
invokevirtual com.google.common.cache.LocalCache.usesAccessQueue:()Z
ifeq 15
14: new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
goto 16
15: StackMap locals:
StackMap stack: com.google.common.cache.LocalCache$Segment
invokestatic com.google.common.cache.LocalCache.discardingQueue:()Ljava/util/Queue;
16: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.LocalCache int long com.google.common.cache.AbstractCache$StatsCounter
StackMap stack: com.google.common.cache.LocalCache$Segment java.util.Queue
putfield com.google.common.cache.LocalCache$Segment.recencyQueue:Ljava/util/Queue;
17: aload 0
18: aload 1
invokevirtual com.google.common.cache.LocalCache.usesWriteQueue:()Z
ifeq 20
19: new com.google.common.cache.LocalCache$WriteQueue
dup
invokespecial com.google.common.cache.LocalCache$WriteQueue.<init>:()V
goto 21
20: StackMap locals:
StackMap stack: com.google.common.cache.LocalCache$Segment
invokestatic com.google.common.cache.LocalCache.discardingQueue:()Ljava/util/Queue;
21: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.LocalCache int long com.google.common.cache.AbstractCache$StatsCounter
StackMap stack: com.google.common.cache.LocalCache$Segment java.util.Queue
putfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
22: aload 0
23: aload 1
invokevirtual com.google.common.cache.LocalCache.usesAccessQueue:()Z
ifeq 25
24: new com.google.common.cache.LocalCache$AccessQueue
dup
invokespecial com.google.common.cache.LocalCache$AccessQueue.<init>:()V
goto 26
25: StackMap locals:
StackMap stack: com.google.common.cache.LocalCache$Segment
invokestatic com.google.common.cache.LocalCache.discardingQueue:()Ljava/util/Queue;
26: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.LocalCache int long com.google.common.cache.AbstractCache$StatsCounter
StackMap stack: com.google.common.cache.LocalCache$Segment java.util.Queue
putfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
27: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 28 1 map Lcom/google/common/cache/LocalCache<TK;TV;>;
0 28 2 initialCapacity I
0 28 3 maxSegmentWeight J
0 28 5 statsCounter Lcom/google/common/cache/AbstractCache$StatsCounter;
Signature: (Lcom/google/common/cache/LocalCache<TK;TV;>;IJLcom/google/common/cache/AbstractCache$StatsCounter;)V
MethodParameters:
Name Flags
map
initialCapacity
maxSegmentWeight
statsCounter
java.util.concurrent.atomic.AtomicReferenceArray<com.google.common.cache.ReferenceEntry<K, V>> 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/cache/LocalCache$Segment<TK;TV;>;
0 1 1 size I
Signature: (I)Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
MethodParameters:
Name Flags
size
void initTable(java.util.concurrent.atomic.AtomicReferenceArray<com.google.common.cache.ReferenceEntry<K, V>>);
descriptor: (Ljava/util/concurrent/atomic/AtomicReferenceArray;)V
flags: (0x0000)
Code:
stack=4, 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.cache.LocalCache$Segment.threshold:I
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.customWeigher:()Z
ifne 3
aload 0
getfield com.google.common.cache.LocalCache$Segment.threshold:I
i2l
aload 0
getfield com.google.common.cache.LocalCache$Segment.maxSegmentWeight:J
lcmp
ifne 3
2: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.threshold:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.threshold:I
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.google.common.cache.LocalCache$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/cache/LocalCache$Segment<TK;TV;>;
0 5 1 newTable Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
Signature: (Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;)V
MethodParameters:
Name Flags
newTable
com.google.common.cache.ReferenceEntry<K, V> newEntry(K, int, com.google.common.cache.ReferenceEntry<K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.entryFactory:Lcom/google/common/cache/LocalCache$EntryFactory;
aload 0
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
iload 2
aload 3
invokevirtual com.google.common.cache.LocalCache$EntryFactory.newEntry:(Lcom/google/common/cache/LocalCache$Segment;Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
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/cache/LocalCache$Segment<TK;TV;>;
0 1 1 key TK;
0 1 2 hash I
0 1 3 next Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (TK;ILcom/google/common/cache/ReferenceEntry<TK;TV;>;)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
next
com.google.common.cache.ReferenceEntry<K, V> copyEntry(com.google.common.cache.ReferenceEntry<K, V>, com.google.common.cache.ReferenceEntry<K, V>);
descriptor: (Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 3
start local 3 3: aload 3
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 4
start local 4 4: aload 4
ifnonnull 6
aload 3
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 6
5: aconst_null
areturn
6: StackMap locals: com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.entryFactory:Lcom/google/common/cache/LocalCache$EntryFactory;
aload 0
aload 1
aload 2
invokevirtual com.google.common.cache.LocalCache$EntryFactory.copyEntry:(Lcom/google/common/cache/LocalCache$Segment;Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 5
start local 5 7: aload 5
aload 3
aload 0
getfield com.google.common.cache.LocalCache$Segment.valueReferenceQueue:Ljava/lang/ref/ReferenceQueue;
aload 4
aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.copyFor:(Ljava/lang/ref/ReferenceQueue;Ljava/lang/Object;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
8: aload 5
areturn
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 9 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 9 1 original Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 9 2 newNext Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
3 9 3 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
4 9 4 value TV;
7 9 5 newEntry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;Lcom/google/common/cache/ReferenceEntry<TK;TV;>;)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
original
newNext
void setValue(com.google.common.cache.ReferenceEntry<K, V>, K, V, );
descriptor: (Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 6
start local 6 1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.weigher:Lcom/google/common/cache/Weigher;
aload 2
aload 3
invokeinterface com.google.common.cache.Weigher.weigh:(Ljava/lang/Object;Ljava/lang/Object;)I
istore 7
start local 7 2: iload 7
iflt 3
iconst_1
goto 4
StackMap locals: com.google.common.cache.LocalCache$ValueReference int
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "Weights must be non-negative"
invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
5: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.valueStrength:Lcom/google/common/cache/LocalCache$Strength;
aload 0
aload 1
aload 3
iload 7
invokevirtual com.google.common.cache.LocalCache$Strength.referenceValue:(Lcom/google/common/cache/LocalCache$Segment;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;I)Lcom/google/common/cache/LocalCache$ValueReference;
6: astore 8
start local 8 7: aload 1
aload 8
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
8: aload 0
aload 1
iload 7
lload 4
invokevirtual com.google.common.cache.LocalCache$Segment.recordWrite:(Lcom/google/common/cache/ReferenceEntry;IJ)V
9: aload 6
aload 3
invokeinterface com.google.common.cache.LocalCache$ValueReference.notifyNewValue:(Ljava/lang/Object;)V
10: return
end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 11 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 11 2 key TK;
0 11 3 value TV;
0 11 4 now J
1 11 6 previous Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
2 11 7 weight I
7 11 8 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;TK;TV;J)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
entry
key
value
now
V get(K, int, com.google.common.cache.CacheLoader<? super K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 3
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
ifeq 18
3: aload 0
aload 1
iload 2
invokevirtual com.google.common.cache.LocalCache$Segment.getEntry:(Ljava/lang/Object;I)Lcom/google/common/cache/ReferenceEntry;
astore 4
start local 4 4: aload 4
ifnull 18
5: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 5
start local 5 6: aload 0
aload 4
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.getLiveValue:(Lcom/google/common/cache/ReferenceEntry;J)Ljava/lang/Object;
astore 7
start local 7 7: aload 7
ifnull 13
8: aload 0
aload 4
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.recordRead:(Lcom/google/common/cache/ReferenceEntry;J)V
9: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
iconst_1
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordHits:(I)V
10: aload 0
aload 4
aload 1
iload 2
aload 7
lload 5
aload 3
invokevirtual com.google.common.cache.LocalCache$Segment.scheduleRefresh:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;JLcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
astore 10
11: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
12: aload 10
areturn
13: StackMap locals: com.google.common.cache.ReferenceEntry long java.lang.Object
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 8
start local 8 14: aload 8
invokeinterface com.google.common.cache.LocalCache$ValueReference.isLoading:()Z
ifeq 18
15: aload 0
aload 4
aload 1
aload 8
invokevirtual com.google.common.cache.LocalCache$Segment.waitForLoadingValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;)Ljava/lang/Object;
astore 10
16: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
17: aload 10
areturn
end local 8 end local 7 end local 5 end local 4 18: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 3
invokevirtual com.google.common.cache.LocalCache$Segment.lockedGetOrLoad:(Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
astore 10
19: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
20: aload 10
areturn
21: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
astore 4
start local 4 22: aload 4
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
astore 5
start local 5 23: aload 5
instanceof java.lang.Error
ifeq 25
24: new com.google.common.util.concurrent.ExecutionError
dup
aload 5
checkcast java.lang.Error
invokespecial com.google.common.util.concurrent.ExecutionError.<init>:(Ljava/lang/Error;)V
athrow
25: StackMap locals: java.util.concurrent.ExecutionException java.lang.Throwable
StackMap stack:
aload 5
instanceof java.lang.RuntimeException
ifeq 27
26: new com.google.common.util.concurrent.UncheckedExecutionException
dup
aload 5
invokespecial com.google.common.util.concurrent.UncheckedExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
27: StackMap locals:
StackMap stack:
aload 4
athrow
end local 5 end local 4 28: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader
StackMap stack: java.lang.Throwable
astore 9
29: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
30: aload 9
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 31 1 key TK;
0 31 2 hash I
0 31 3 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
4 18 4 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
6 18 5 now J
7 18 7 value TV;
14 18 8 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
22 28 4 ee Ljava/util/concurrent/ExecutionException;
23 28 5 cause Ljava/lang/Throwable;
Exception table:
from to target type
2 11 21 Class java.util.concurrent.ExecutionException
13 16 21 Class java.util.concurrent.ExecutionException
18 19 21 Class java.util.concurrent.ExecutionException
2 11 28 any
13 16 28 any
18 19 28 any
21 28 28 any
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: (TK;ILcom/google/common/cache/CacheLoader<-TK;TV;>;)TV;
MethodParameters:
Name Flags
key
hash
loader
V get(, );
descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
ifeq 13
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 3
start local 3 2: aload 0
aload 1
iload 2
lload 3
invokevirtual com.google.common.cache.LocalCache$Segment.getLiveEntry:(Ljava/lang/Object;IJ)Lcom/google/common/cache/ReferenceEntry;
astore 5
start local 5 3: aload 5
ifnonnull 6
4: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
5: aconst_null
areturn
6: StackMap locals: long com.google.common.cache.ReferenceEntry
StackMap stack:
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 6
start local 6 7: aload 6
ifnull 12
8: aload 0
aload 5
lload 3
invokevirtual com.google.common.cache.LocalCache$Segment.recordRead:(Lcom/google/common/cache/ReferenceEntry;J)V
9: aload 0
aload 5
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
iload 2
aload 6
lload 3
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.defaultLoader:Lcom/google/common/cache/CacheLoader;
invokevirtual com.google.common.cache.LocalCache$Segment.scheduleRefresh:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;JLcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
astore 8
10: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
11: aload 8
areturn
12: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryDrainReferenceQueues:()V
end local 6 end local 5 end local 3 13: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
14: aconst_null
areturn
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
16: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
17: aload 7
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 18 1 key Ljava/lang/Object;
0 18 2 hash I
2 13 3 now J
3 13 5 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
7 13 6 value TV;
Exception table:
from to target type
0 4 15 any
6 10 15 any
12 13 15 any
Signature: (Ljava/lang/Object;I)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
V lockedGetOrLoad(K, int, com.google.common.cache.CacheLoader<? super K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=6, locals=18, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: iconst_1
istore 7
start local 7 3: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
4: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 8
start local 8 5: aload 0
lload 8
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
6: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 10
start local 10 7: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 11
start local 11 8: iload 2
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 12
start local 12 9: aload 11
iload 12
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 13
start local 13 10: aload 13
astore 4
start local 4 11: goto 42
12: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader com.google.common.cache.ReferenceEntry com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 14
start local 14 13: aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 41
14: aload 14
ifnull 41
15: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 14
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 41
16: aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 5
17: aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.isLoading:()Z
ifeq 20
18: iconst_0
istore 7
19: goto 43
20: StackMap locals: java.lang.Object
StackMap stack:
aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 15
start local 15 21: aload 15
ifnonnull 26
22: aload 0
23: aload 14
iload 2
aload 15
aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
24: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
25: goto 37
StackMap locals: java.lang.Object
StackMap stack:
26: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 4
lload 8
invokevirtual com.google.common.cache.LocalCache.isExpired:(Lcom/google/common/cache/ReferenceEntry;J)Z
ifeq 31
27: aload 0
28: aload 14
iload 2
aload 15
aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
getstatic com.google.common.cache.RemovalCause.EXPIRED:Lcom/google/common/cache/RemovalCause;
29: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
30: goto 37
31: StackMap locals:
StackMap stack:
aload 0
aload 4
lload 8
invokevirtual com.google.common.cache.LocalCache$Segment.recordLockedRead:(Lcom/google/common/cache/ReferenceEntry;J)V
32: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
iconst_1
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordHits:(I)V
33: aload 15
astore 17
34: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
35: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
36: aload 17
areturn
37: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
aload 4
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
38: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 4
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
39: aload 0
iload 10
putfield com.google.common.cache.LocalCache$Segment.count:I
end local 15 40: goto 43
end local 14 41: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 4
StackMap locals:
StackMap stack:
42: aload 4
ifnonnull 12
43: StackMap locals:
StackMap stack:
iload 7
ifeq 56
44: new com.google.common.cache.LocalCache$LoadingValueReference
dup
invokespecial com.google.common.cache.LocalCache$LoadingValueReference.<init>:()V
astore 6
45: aload 4
ifnonnull 50
46: aload 0
aload 1
iload 2
aload 13
invokevirtual com.google.common.cache.LocalCache$Segment.newEntry:(Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 4
47: aload 4
aload 6
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
48: aload 11
iload 12
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
49: goto 56
50: StackMap locals:
StackMap stack:
aload 4
aload 6
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
end local 13 end local 12 end local 11 end local 10 end local 8 51: goto 56
end local 4 StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader top com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int
StackMap stack: java.lang.Throwable
52: astore 16
53: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
54: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
55: aload 16
athrow
start local 4 56: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader com.google.common.cache.ReferenceEntry com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
57: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
58: iload 7
ifeq 68
59: aload 4
dup
astore 8
monitorenter
60: aload 0
aload 1
iload 2
aload 6
aload 3
invokevirtual com.google.common.cache.LocalCache$Segment.loadSync:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
astore 10
aload 8
monitorexit
61: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
iconst_1
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordMisses:(I)V
62: aload 10
areturn
63: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader com.google.common.cache.ReferenceEntry com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int com.google.common.cache.ReferenceEntry
StackMap stack: java.lang.Throwable
aload 8
monitorexit
64: athrow
65: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader com.google.common.cache.ReferenceEntry com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int
StackMap stack: java.lang.Throwable
astore 9
66: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
iconst_1
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordMisses:(I)V
67: aload 9
athrow
68: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 1
aload 5
invokevirtual com.google.common.cache.LocalCache$Segment.waitForLoadingValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;)Ljava/lang/Object;
areturn
end local 7 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 69 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 69 1 key TK;
0 69 2 hash I
0 69 3 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
11 52 4 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
56 69 4 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
1 69 5 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
2 69 6 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
3 69 7 createNewEntry Z
5 51 8 now J
7 51 10 newCount I
8 51 11 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
9 51 12 index I
10 51 13 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
13 41 14 entryKey TK;
21 40 15 value TV;
Exception table:
from to target type
4 34 52 any
37 52 52 any
60 61 63 any
63 64 63 any
59 61 65 any
63 65 65 any
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: (TK;ILcom/google/common/cache/CacheLoader<-TK;TV;>;)TV;
MethodParameters:
Name Flags
key
hash
loader
V waitForLoadingValue(com.google.common.cache.ReferenceEntry<K, V>, K, com.google.common.cache.LocalCache$ValueReference<K, V>);
descriptor: (Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokeinterface com.google.common.cache.LocalCache$ValueReference.isLoading:()Z
ifne 2
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 3
iconst_0
goto 4
StackMap locals:
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: ldc "Recursive load of: %s"
aload 2
invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/String;Ljava/lang/Object;)V
5: aload 3
invokeinterface com.google.common.cache.LocalCache$ValueReference.waitForValue:()Ljava/lang/Object;
astore 4
start local 4 6: aload 4
ifnonnull 8
7: new com.google.common.cache.CacheLoader$InvalidCacheLoadException
dup
new java.lang.StringBuilder
dup
ldc "CacheLoader returned null for key "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.google.common.cache.CacheLoader$InvalidCacheLoadException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 5
start local 5 9: aload 0
aload 1
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.recordRead:(Lcom/google/common/cache/ReferenceEntry;J)V
10: aload 4
astore 8
11: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
iconst_1
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordMisses:(I)V
12: aload 8
areturn
end local 5 end local 4 13: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.ReferenceEntry java.lang.Object com.google.common.cache.LocalCache$ValueReference
StackMap stack: java.lang.Throwable
astore 7
14: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
iconst_1
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordMisses:(I)V
15: aload 7
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 16 1 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 16 2 key TK;
0 16 3 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
6 13 4 value TV;
9 13 5 now J
Exception table:
from to target type
5 11 13 any
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;TK;Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;)TV;
MethodParameters:
Name Flags
e
key
valueReference
V compute(K, int, java.util.function.BiFunction<? super K, ? super V, ? extends V>);
descriptor: (Ljava/lang/Object;ILjava/util/function/BiFunction;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=6, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: iconst_1
istore 7
start local 7 3: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
4: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 9
start local 9 5: aload 0
lload 9
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
6: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 11
start local 11 7: iload 2
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 12
start local 12 8: aload 11
iload 12
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 13
start local 13 9: aload 13
astore 4
start local 4 10: goto 29
11: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.util.function.BiFunction com.google.common.cache.ReferenceEntry com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int top long java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 14
start local 14 12: aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 28
13: aload 14
ifnull 28
14: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 14
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 28
15: aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 5
16: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 4
lload 9
invokevirtual com.google.common.cache.LocalCache.isExpired:(Lcom/google/common/cache/ReferenceEntry;J)Z
ifeq 24
17: aload 0
18: aload 14
19: iload 2
20: aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
21: aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
22: getstatic com.google.common.cache.RemovalCause.EXPIRED:Lcom/google/common/cache/RemovalCause;
23: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
24: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
aload 4
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
25: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 4
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
26: iconst_0
istore 7
27: goto 30
end local 14 28: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 4
StackMap locals:
StackMap stack:
29: aload 4
ifnonnull 11
30: StackMap locals:
StackMap stack:
new com.google.common.cache.LocalCache$LoadingValueReference
dup
aload 5
invokespecial com.google.common.cache.LocalCache$LoadingValueReference.<init>:(Lcom/google/common/cache/LocalCache$ValueReference;)V
astore 6
31: aload 4
ifnonnull 37
32: iconst_1
istore 7
33: aload 0
aload 1
iload 2
aload 13
invokevirtual com.google.common.cache.LocalCache$Segment.newEntry:(Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 4
34: aload 4
aload 6
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
35: aload 11
iload 12
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
36: goto 38
37: StackMap locals:
StackMap stack:
aload 4
aload 6
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
38: StackMap locals:
StackMap stack:
aload 6
aload 1
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
astore 8
start local 8 39: aload 8
ifnull 55
40: aload 5
ifnull 47
aload 8
aload 5
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
if_acmpne 47
41: aload 6
aload 8
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.set:(Ljava/lang/Object;)Z
pop
42: aload 0
aload 4
aload 1
aload 8
lload 9
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
43: aload 8
astore 16
44: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
45: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
46: aload 16
areturn
47: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.util.function.BiFunction com.google.common.cache.ReferenceEntry com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int java.lang.Object long java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
48: aload 1
iload 2
aload 6
aload 8
invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
49: invokevirtual com.google.common.cache.LocalCache$Segment.getAndRecordStats:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
astore 16
50: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
51: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
52: aload 16
areturn
53: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
pop
54: new java.lang.AssertionError
dup
ldc "impossible; Futures.immediateFuture can't throw"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
55: StackMap locals:
StackMap stack:
iload 7
ifeq 60
56: aload 0
aload 1
iload 2
aload 6
invokevirtual com.google.common.cache.LocalCache$Segment.removeLoadingValue:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;)Z
pop
57: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
58: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
59: aconst_null
areturn
60: StackMap locals:
StackMap stack:
aload 0
aload 4
iload 2
getstatic com.google.common.cache.RemovalCause.EXPLICIT:Lcom/google/common/cache/RemovalCause;
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntry:(Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
pop
61: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
62: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
63: aconst_null
areturn
end local 13 end local 12 end local 11 end local 9 end local 8 end local 4 64: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.util.function.BiFunction top com.google.common.cache.LocalCache$ValueReference com.google.common.cache.LocalCache$LoadingValueReference int
StackMap stack: java.lang.Throwable
astore 15
65: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
66: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
67: aload 15
athrow
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 68 1 key TK;
0 68 2 hash I
0 68 3 function Ljava/util/function/BiFunction<-TK;-TV;+TV;>;
10 64 4 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
1 68 5 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
2 68 6 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
3 68 7 createNewEntry Z
39 64 8 newValue TV;
5 64 9 now J
7 64 11 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
8 64 12 index I
9 64 13 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
12 28 14 entryKey TK;
Exception table:
from to target type
47 50 53 Class java.util.concurrent.ExecutionException
4 44 64 any
47 50 64 any
53 57 64 any
60 61 64 any
Signature: (TK;ILjava/util/function/BiFunction<-TK;-TV;+TV;>;)TV;
MethodParameters:
Name Flags
key
hash
function
V loadSync(K, int, com.google.common.cache.LocalCache$LoadingValueReference<K, V>, com.google.common.cache.CacheLoader<? super K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
aload 1
aload 4
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.loadFuture:(Ljava/lang/Object;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 5
start local 5 1: aload 0
aload 1
iload 2
aload 3
aload 5
invokevirtual com.google.common.cache.LocalCache$Segment.getAndRecordStats:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
areturn
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 2 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 2 1 key TK;
0 2 2 hash I
0 2 3 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 2 4 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
1 2 5 loadingFuture Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: (TK;ILcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;Lcom/google/common/cache/CacheLoader<-TK;TV;>;)TV;
MethodParameters:
Name Flags
key
hash
loadingValueReference
loader
com.google.common.util.concurrent.ListenableFuture<V> loadAsync(K, int, com.google.common.cache.LocalCache$LoadingValueReference<K, V>, com.google.common.cache.CacheLoader<? super K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0000)
Code:
stack=8, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
aload 1
aload 4
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.loadFuture:(Ljava/lang/Object;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 5
start local 5 1: aload 5
2: new com.google.common.cache.LocalCache$Segment$1
dup
aload 0
aload 1
iload 2
aload 3
aload 5
invokespecial com.google.common.cache.LocalCache$Segment$1.<init>:(Lcom/google/common/cache/LocalCache$Segment;Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/util/concurrent/ListenableFuture;)V
3: invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
4: invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
5: aload 5
areturn
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 6 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 6 1 key TK;
0 6 2 hash I
0 6 3 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 6 4 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
1 6 5 loadingFuture Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
Signature: (TK;ILcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;Lcom/google/common/cache/CacheLoader<-TK;TV;>;)Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
MethodParameters:
Name Flags
key final
hash final
loadingValueReference final
loader
V getAndRecordStats(K, int, com.google.common.cache.LocalCache$LoadingValueReference<K, V>, com.google.common.util.concurrent.ListenableFuture<V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aload 4
invokestatic com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
astore 5
2: aload 5
ifnonnull 4
3: new com.google.common.cache.CacheLoader$InvalidCacheLoadException
dup
new java.lang.StringBuilder
dup
ldc "CacheLoader returned null for key "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.google.common.cache.CacheLoader$InvalidCacheLoadException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.elapsedNanos:()J
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordLoadSuccess:(J)V
5: aload 0
aload 1
iload 2
aload 3
aload 5
invokevirtual com.google.common.cache.LocalCache$Segment.storeLoadedValue:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Ljava/lang/Object;)Z
pop
6: aload 5
astore 7
7: aload 5
ifnonnull 10
8: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.elapsedNanos:()J
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordLoadException:(J)V
9: aload 0
aload 1
iload 2
aload 3
invokevirtual com.google.common.cache.LocalCache$Segment.removeLoadingValue:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;)Z
pop
10: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$LoadingValueReference com.google.common.util.concurrent.ListenableFuture java.lang.Object top java.lang.Object
StackMap stack:
aload 7
areturn
11: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$LoadingValueReference com.google.common.util.concurrent.ListenableFuture java.lang.Object
StackMap stack: java.lang.Throwable
astore 6
12: aload 5
ifnonnull 15
13: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.elapsedNanos:()J
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordLoadException:(J)V
14: aload 0
aload 1
iload 2
aload 3
invokevirtual com.google.common.cache.LocalCache$Segment.removeLoadingValue:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;)Z
pop
15: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
athrow
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 16 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 16 1 key TK;
0 16 2 hash I
0 16 3 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 16 4 newValue Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
1 16 5 value TV;
Exception table:
from to target type
1 7 11 any
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: (TK;ILcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;Lcom/google/common/util/concurrent/ListenableFuture<TV;>;)TV;
MethodParameters:
Name Flags
key
hash
loadingValueReference
newValue
V scheduleRefresh(com.google.common.cache.ReferenceEntry<K, V>, K, int, V, long, com.google.common.cache.CacheLoader<? super K, V>);
descriptor: (Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;JLcom/google/common/cache/CacheLoader;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 7 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.refreshes:()Z
ifeq 6
1: lload 5
aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getWriteTime:()J
lsub
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.refreshNanos:J
lcmp
ifle 6
2: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.isLoading:()Z
ifne 6
3: aload 0
aload 2
iload 3
aload 7
iconst_1
invokevirtual com.google.common.cache.LocalCache$Segment.refresh:(Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;Z)Ljava/lang/Object;
astore 8
start local 8 4: aload 8
ifnull 6
5: aload 8
areturn
end local 8 6: StackMap locals:
StackMap stack:
aload 4
areturn
end local 7 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 7 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 7 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 7 2 key TK;
0 7 3 hash I
0 7 4 oldValue TV;
0 7 5 now J
0 7 7 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
4 6 8 newValue TV;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;TK;ITV;JLcom/google/common/cache/CacheLoader<-TK;TV;>;)TV;
MethodParameters:
Name Flags
entry
key
hash
oldValue
now
loader
V refresh(K, int, com.google.common.cache.CacheLoader<? super K, V>, );
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/CacheLoader;Z)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
iload 4
invokevirtual com.google.common.cache.LocalCache$Segment.insertLoadingValueReference:(Ljava/lang/Object;IZ)Lcom/google/common/cache/LocalCache$LoadingValueReference;
1: astore 5
start local 5 2: aload 5
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: com.google.common.cache.LocalCache$LoadingValueReference
StackMap stack:
aload 0
aload 1
iload 2
aload 5
aload 3
invokevirtual com.google.common.cache.LocalCache$Segment.loadAsync:(Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 6
start local 6 5: aload 6
invokeinterface com.google.common.util.concurrent.ListenableFuture.isDone:()Z
ifeq 9
6: aload 6
invokestatic com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
7: areturn
8: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.CacheLoader int com.google.common.cache.LocalCache$LoadingValueReference com.google.common.util.concurrent.ListenableFuture
StackMap stack: java.lang.Throwable
pop
9: StackMap locals:
StackMap stack:
aconst_null
areturn
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 10 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 10 1 key TK;
0 10 2 hash I
0 10 3 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
0 10 4 checkTime Z
2 10 5 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
5 10 6 result Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
Exception table:
from to target type
6 7 8 Class java.lang.Throwable
Signature: (TK;ILcom/google/common/cache/CacheLoader<-TK;TV;>;Z)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
loader
checkTime
com.google.common.cache.LocalCache$LoadingValueReference<K, V> insertLoadingValueReference(K, int, boolean);
descriptor: (Ljava/lang/Object;IZ)Lcom/google/common/cache/LocalCache$LoadingValueReference;
flags: (0x0000)
Code:
stack=4, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 5
start local 5 3: aload 0
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
4: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 7
start local 7 5: iload 2
aload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 8
start local 8 6: aload 7
iload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 9
start local 9 7: aload 9
astore 4
goto 27
8: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int int com.google.common.cache.ReferenceEntry long java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 10
start local 10 9: aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 26
10: aload 10
ifnull 26
11: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.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 26
12: aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 11
start local 11 13: aload 11
invokeinterface com.google.common.cache.LocalCache$ValueReference.isLoading:()Z
ifne 15
14: iload 3
ifeq 18
lload 5
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getWriteTime:()J
lsub
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.refreshNanos:J
lcmp
ifge 18
15: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
16: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
17: aconst_null
areturn
18: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
19: new com.google.common.cache.LocalCache$LoadingValueReference
dup
aload 11
invokespecial com.google.common.cache.LocalCache$LoadingValueReference.<init>:(Lcom/google/common/cache/LocalCache$ValueReference;)V
20: astore 12
start local 12 21: aload 4
aload 12
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
22: aload 12
astore 14
23: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
24: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
25: aload 14
areturn
end local 12 end local 11 end local 10 26: StackMap locals:
StackMap stack:
aload 4
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 4
StackMap locals:
StackMap stack:
27: aload 4
ifnonnull 8
28: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
29: new com.google.common.cache.LocalCache$LoadingValueReference
dup
invokespecial com.google.common.cache.LocalCache$LoadingValueReference.<init>:()V
astore 10
start local 10 30: aload 0
aload 1
iload 2
aload 9
invokevirtual com.google.common.cache.LocalCache$Segment.newEntry:(Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 4
31: aload 4
aload 10
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
32: aload 7
iload 8
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
33: aload 10
astore 14
34: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
35: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
36: aload 14
areturn
end local 10 end local 9 end local 8 end local 7 end local 5 37: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int int com.google.common.cache.ReferenceEntry
StackMap stack: java.lang.Throwable
astore 13
38: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
39: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
40: 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 41 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 41 1 key TK;
0 41 2 hash I
0 41 3 checkTime Z
1 41 4 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
3 37 5 now J
5 37 7 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
6 37 8 index I
7 37 9 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
9 26 10 entryKey TK;
13 26 11 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
21 26 12 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
30 37 10 loadingValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
Exception table:
from to target type
2 15 37 any
18 23 37 any
26 34 37 any
Signature: (TK;IZ)Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key final
hash final
checkTime
void tryDrainReferenceQueues();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryLock:()Z
ifeq 7
1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainReferenceQueues:()V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$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/cache/LocalCache$Segment<TK;TV;>;
Exception table:
from to target type
1 3 3 any
void drainReferenceQueues();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.usesKeyReferences:()Z
ifeq 2
1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainKeyReferenceQueue:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.usesValueReferences:()Z
ifeq 4
3: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainValueReferenceQueue:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
void drainKeyReferenceQueue();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 2
start local 2 1: goto 6
start local 1 2: StackMap locals: java.lang.ref.Reference int
StackMap stack:
aload 1
checkcast com.google.common.cache.ReferenceEntry
astore 3
start local 3 3: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 3
invokevirtual com.google.common.cache.LocalCache.reclaimKey:(Lcom/google/common/cache/ReferenceEntry;)V
4: iinc 2 1
iload 2
bipush 16
if_icmpne 6
5: goto 8
end local 3 end local 1 6: StackMap locals: com.google.common.cache.LocalCache$Segment top int
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.keyReferenceQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 1
start local 1 7: ifnonnull 2
8: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.ref.Reference int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
2 6 1 ref Ljava/lang/ref/Reference<+TK;>;
7 9 1 ref Ljava/lang/ref/Reference<+TK;>;
1 9 2 i I
3 6 3 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
void drainValueReferenceQueue();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_0
istore 2
start local 2 1: goto 6
start local 1 2: StackMap locals: java.lang.ref.Reference int
StackMap stack:
aload 1
checkcast com.google.common.cache.LocalCache$ValueReference
astore 3
start local 3 3: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 3
invokevirtual com.google.common.cache.LocalCache.reclaimValue:(Lcom/google/common/cache/LocalCache$ValueReference;)V
4: iinc 2 1
iload 2
bipush 16
if_icmpne 6
5: goto 8
end local 3 end local 1 6: StackMap locals: com.google.common.cache.LocalCache$Segment top int
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.valueReferenceQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 1
start local 1 7: ifnonnull 2
8: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.ref.Reference int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
2 6 1 ref Ljava/lang/ref/Reference<+TV;>;
7 9 1 ref Ljava/lang/ref/Reference<+TV;>;
1 9 2 i I
3 6 3 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
void clearReferenceQueues();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.usesKeyReferences:()Z
ifeq 2
1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.clearKeyReferenceQueue:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.usesValueReferences:()Z
ifeq 4
3: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.clearValueReferenceQueue:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
void clearKeyReferenceQueue();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.keyReferenceQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
ifnonnull 0
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
void clearValueReferenceQueue();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.valueReferenceQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
ifnonnull 0
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
void recordRead(com.google.common.cache.ReferenceEntry<K, V>, );
descriptor: (Lcom/google/common/cache/ReferenceEntry;J)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.recordsAccess:()Z
ifeq 2
1: aload 1
lload 2
invokeinterface com.google.common.cache.ReferenceEntry.setAccessTime:(J)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.recencyQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 4 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 4 2 now J
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;J)V
MethodParameters:
Name Flags
entry
now
void recordLockedRead(com.google.common.cache.ReferenceEntry<K, V>, );
descriptor: (Lcom/google/common/cache/ReferenceEntry;J)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.recordsAccess:()Z
ifeq 2
1: aload 1
lload 2
invokeinterface com.google.common.cache.ReferenceEntry.setAccessTime:(J)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 4 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 4 2 now J
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;J)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
entry
now
void recordWrite(com.google.common.cache.ReferenceEntry<K, V>, int, );
descriptor: (Lcom/google/common/cache/ReferenceEntry;IJ)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainRecencyQueue:()V
1: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.totalWeight:J
iload 2
i2l
ladd
putfield com.google.common.cache.LocalCache$Segment.totalWeight:J
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.recordsAccess:()Z
ifeq 4
3: aload 1
lload 3
invokeinterface com.google.common.cache.ReferenceEntry.setAccessTime:(J)V
4: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.recordsWrite:()Z
ifeq 6
5: aload 1
lload 3
invokeinterface com.google.common.cache.ReferenceEntry.setWriteTime:(J)V
6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
7: aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
8: 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/cache/LocalCache$Segment<TK;TV;>;
0 9 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 9 2 weight I
0 9 3 now J
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;IJ)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
entry
weight
now
void drainRecencyQueue();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: goto 3
start local 1 1: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.contains:(Ljava/lang/Object;)Z
ifeq 3
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
end local 1 3: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.recencyQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
dup
astore 1
start local 1 4: ifnonnull 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
1 3 1 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
4 6 1 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
void tryExpireEntries(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryLock:()Z
ifeq 7
1: aload 0
lload 1
invokevirtual com.google.common.cache.LocalCache$Segment.expireEntries:(J)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 3
4: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
5: aload 3
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 8 1 now J
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
now
void expireEntries(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainRecencyQueue:()V
1: goto 4
start local 3 2: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
aload 3
aload 3
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
getstatic com.google.common.cache.RemovalCause.EXPIRED:Lcom/google/common/cache/RemovalCause;
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntry:(Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
ifne 4
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 4: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.peek:()Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
dup
astore 3
start local 3 5: ifnull 9
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 3
lload 1
invokevirtual com.google.common.cache.LocalCache.isExpired:(Lcom/google/common/cache/ReferenceEntry;J)Z
ifne 2
6: goto 9
7: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
aload 3
aload 3
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
getstatic com.google.common.cache.RemovalCause.EXPIRED:Lcom/google/common/cache/RemovalCause;
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntry:(Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
ifne 9
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.peek:()Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
dup
astore 3
ifnull 10
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 3
lload 1
invokevirtual com.google.common.cache.LocalCache.isExpired:(Lcom/google/common/cache/ReferenceEntry;J)Z
ifne 7
10: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 11 1 now J
2 4 3 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
5 11 3 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
now
void enqueueNotification(K, int, V, int, com.google.common.cache.RemovalCause);
descriptor: (Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.totalWeight:J
iload 4
i2l
lsub
putfield com.google.common.cache.LocalCache$Segment.totalWeight:J
1: aload 5
invokevirtual com.google.common.cache.RemovalCause.wasEvicted:()Z
ifeq 3
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.statsCounter:Lcom/google/common/cache/AbstractCache$StatsCounter;
invokeinterface com.google.common.cache.AbstractCache$StatsCounter.recordEviction:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.removalNotificationQueue:Ljava/util/Queue;
getstatic com.google.common.cache.LocalCache.DISCARDING_QUEUE:Ljava/util/Queue;
if_acmpeq 6
4: aload 1
aload 3
aload 5
invokestatic com.google.common.cache.RemovalNotification.create:(Ljava/lang/Object;Ljava/lang/Object;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/RemovalNotification;
astore 6
start local 6 5: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.removalNotificationQueue:Ljava/util/Queue;
aload 6
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
end local 6 6: StackMap locals:
StackMap stack:
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 7 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 7 1 key TK;
0 7 2 hash I
0 7 3 value TV;
0 7 4 weight I
0 7 5 cause Lcom/google/common/cache/RemovalCause;
5 6 6 notification Lcom/google/common/cache/RemovalNotification<TK;TV;>;
Signature: (TK;ITV;ILcom/google/common/cache/RemovalCause;)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
value
weight
cause
void evictEntries(com.google.common.cache.ReferenceEntry<K, V>);
descriptor: (Lcom/google/common/cache/ReferenceEntry;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.evictsBySize:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainRecencyQueue:()V
3: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
i2l
aload 0
getfield com.google.common.cache.LocalCache$Segment.maxSegmentWeight:J
lcmp
ifle 9
4: aload 0
aload 1
aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
getstatic com.google.common.cache.RemovalCause.SIZE:Lcom/google/common/cache/RemovalCause;
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntry:(Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
ifne 9
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.getNextEvictable:()Lcom/google/common/cache/ReferenceEntry;
astore 2
start local 2 7: aload 0
aload 2
aload 2
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
getstatic com.google.common.cache.RemovalCause.SIZE:Lcom/google/common/cache/RemovalCause;
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntry:(Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
ifne 9
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.totalWeight:J
aload 0
getfield com.google.common.cache.LocalCache$Segment.maxSegmentWeight:J
lcmp
ifgt 6
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 11 1 newest Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
7 9 2 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
newest
com.google.common.cache.ReferenceEntry<K, V> getNextEvictable();
descriptor: ()Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: com.google.common.cache.LocalCache$Segment top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 1
start local 1 2: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
istore 3
start local 3 3: iload 3
ifle 5
4: aload 1
areturn
end local 3 end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
2 5 1 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
3 5 3 weight I
Signature: ()Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
com.google.common.cache.ReferenceEntry<K, V> getFirst(int);
descriptor: (I)Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.cache.LocalCache$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.cache.ReferenceEntry
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 2 1 hash I
1 2 2 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
Signature: (I)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
MethodParameters:
Name Flags
hash
com.google.common.cache.ReferenceEntry<K, V> getEntry(, int);
descriptor: (Ljava/lang/Object;I)Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 2
invokevirtual com.google.common.cache.LocalCache$Segment.getFirst:(I)Lcom/google/common/cache/ReferenceEntry;
astore 3
start local 3 1: goto 11
2: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 3
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpeq 4
3: goto 10
4: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 4
start local 4 5: aload 4
ifnonnull 8
6: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryDrainReferenceQueues:()V
7: goto 10
8: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.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 10
9: aload 3
areturn
end local 4 10: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 3
StackMap locals:
StackMap stack:
11: aload 3
ifnonnull 2
end local 3 12: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 13 1 key Ljava/lang/Object;
0 13 2 hash I
1 12 3 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
5 10 4 entryKey TK;
Signature: (Ljava/lang/Object;I)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
com.google.common.cache.ReferenceEntry<K, V> getLiveEntry(, int, long);
descriptor: (Ljava/lang/Object;IJ)Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
invokevirtual com.google.common.cache.LocalCache$Segment.getEntry:(Ljava/lang/Object;I)Lcom/google/common/cache/ReferenceEntry;
astore 5
start local 5 1: aload 5
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 5
lload 3
invokevirtual com.google.common.cache.LocalCache.isExpired:(Lcom/google/common/cache/ReferenceEntry;J)Z
ifeq 6
4: aload 0
lload 3
invokevirtual com.google.common.cache.LocalCache$Segment.tryExpireEntries:(J)V
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 7 1 key Ljava/lang/Object;
0 7 2 hash I
0 7 3 now J
1 7 5 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Ljava/lang/Object;IJ)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
now
V getLiveValue(com.google.common.cache.ReferenceEntry<K, V>, );
descriptor: (Lcom/google/common/cache/ReferenceEntry;J)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
ifnonnull 3
1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryDrainReferenceQueues:()V
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 4
start local 4 4: aload 4
ifnonnull 7
5: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryDrainReferenceQueues:()V
6: aconst_null
areturn
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
aload 1
lload 2
invokevirtual com.google.common.cache.LocalCache.isExpired:(Lcom/google/common/cache/ReferenceEntry;J)Z
ifeq 10
8: aload 0
lload 2
invokevirtual com.google.common.cache.LocalCache$Segment.tryExpireEntries:(J)V
9: aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 11 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 11 2 now J
4 11 4 value TV;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;J)TV;
MethodParameters:
Name Flags
entry
now
boolean containsKey(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Z
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
ifeq 11
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 3
start local 3 2: aload 0
aload 1
iload 2
lload 3
invokevirtual com.google.common.cache.LocalCache$Segment.getLiveEntry:(Ljava/lang/Object;IJ)Lcom/google/common/cache/ReferenceEntry;
astore 5
start local 5 3: aload 5
ifnonnull 6
4: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
5: iconst_0
ireturn
6: StackMap locals: long com.google.common.cache.ReferenceEntry
StackMap stack:
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
ifnull 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 7
9: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
10: iload 7
ireturn
end local 5 end local 3 11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
14: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
15: aload 6
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 16 1 key Ljava/lang/Object;
0 16 2 hash I
2 11 3 now J
3 11 5 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
0 4 13 any
6 9 13 any
MethodParameters:
Name Flags
key
hash
boolean containsValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0000)
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
ifeq 18
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 2
start local 2 2: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 4
start local 4 3: aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 17
6: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object long java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
aload 4
iload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 7
start local 7 7: goto 15
8: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
aload 7
lload 2
invokevirtual com.google.common.cache.LocalCache$Segment.getLiveValue:(Lcom/google/common/cache/ReferenceEntry;J)Ljava/lang/Object;
astore 8
start local 8 9: aload 8
ifnonnull 11
10: goto 14
11: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.valueEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 8
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 14
12: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
13: iconst_1
ireturn
end local 8 14: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 7
StackMap locals:
StackMap stack:
15: aload 7
ifnonnull 8
end local 7 16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 5
if_icmplt 6
end local 6 end local 5 end local 4 end local 2 18: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
19: iconst_0
ireturn
20: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
21: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postReadCleanup:()V
22: aload 9
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 23 1 value Ljava/lang/Object;
2 18 2 now J
3 18 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
4 18 5 length I
5 18 6 i I
7 16 7 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
9 14 8 entryValue TV;
Exception table:
from to target type
0 12 20 any
14 18 20 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=6, locals=17, 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.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 5
start local 5 2: aload 0
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
iadd
istore 7
start local 7 4: iload 7
aload 0
getfield com.google.common.cache.LocalCache$Segment.threshold:I
if_icmple 7
5: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.expand:()V
6: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
iadd
istore 7
7: StackMap locals: long int
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 8
start local 8 8: iload 2
aload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 9
start local 9 9: aload 8
iload 9
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 10
start local 10 10: aload 10
astore 11
start local 11 11: goto 51
12: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object int long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 12
start local 12 13: aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 50
14: aload 12
ifnull 50
15: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 12
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 50
16: aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 13
start local 13 17: aload 13
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 14
start local 14 18: aload 14
ifnonnull 34
19: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
20: aload 13
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 27
21: aload 0
22: aload 1
iload 2
aload 14
aload 13
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
23: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
24: aload 0
aload 11
aload 1
aload 3
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
25: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
istore 7
26: goto 29
27: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
aload 0
aload 11
aload 1
aload 3
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
28: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
iadd
istore 7
29: StackMap locals:
StackMap stack:
aload 0
iload 7
putfield com.google.common.cache.LocalCache$Segment.count:I
30: aload 0
aload 11
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
31: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
32: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
33: aconst_null
areturn
34: StackMap locals:
StackMap stack:
iload 4
ifeq 40
35: aload 0
aload 11
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.recordLockedRead:(Lcom/google/common/cache/ReferenceEntry;J)V
36: aload 14
astore 16
37: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
38: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
39: aload 16
areturn
40: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
41: aload 0
42: aload 1
iload 2
aload 14
aload 13
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
getstatic com.google.common.cache.RemovalCause.REPLACED:Lcom/google/common/cache/RemovalCause;
43: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
44: aload 0
aload 11
aload 1
aload 3
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
45: aload 0
aload 11
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
46: aload 14
astore 16
47: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
48: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
49: aload 16
areturn
end local 14 end local 13 end local 12 50: StackMap locals:
StackMap stack:
aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 11
StackMap locals:
StackMap stack:
51: aload 11
ifnonnull 12
end local 11 52: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
53: aload 0
aload 1
iload 2
aload 10
invokevirtual com.google.common.cache.LocalCache$Segment.newEntry:(Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 11
start local 11 54: aload 0
aload 11
aload 1
aload 3
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
55: aload 8
iload 9
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
56: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
iadd
istore 7
57: aload 0
iload 7
putfield com.google.common.cache.LocalCache$Segment.count:I
58: aload 0
aload 11
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
59: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
60: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
61: aconst_null
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 62: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object int
StackMap stack: java.lang.Throwable
astore 15
63: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
64: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
65: aload 15
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 66 1 key TK;
0 66 2 hash I
0 66 3 value TV;
0 66 4 onlyIfAbsent Z
2 62 5 now J
4 62 7 newCount I
8 62 8 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
9 62 9 index I
10 62 10 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
11 52 11 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
13 50 12 entryKey TK;
17 50 13 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
18 50 14 entryValue TV;
54 62 11 newEntry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 31 62 any
34 37 62 any
40 47 62 any
50 59 62 any
Signature: (TK;ITV;Z)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
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.cache.LocalCache$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.cache.LocalCache$Segment.count:I
istore 3
start local 3 5: aload 0
iload 2
iconst_1
ishl
invokevirtual com.google.common.cache.LocalCache$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.cache.LocalCache$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 41
10: StackMap locals: com.google.common.cache.LocalCache$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.cache.ReferenceEntry
astore 7
start local 7 11: aload 7
ifnull 40
12: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 8
start local 8 13: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.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 40
17: StackMap locals: com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry 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.cache.ReferenceEntry int com.google.common.cache.ReferenceEntry
StackMap stack:
aload 12
invokeinterface com.google.common.cache.ReferenceEntry.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.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
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 39
30: StackMap locals:
StackMap stack:
aload 12
invokeinterface com.google.common.cache.ReferenceEntry.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.cache.ReferenceEntry
astore 14
start local 14 32: aload 0
aload 12
aload 14
invokevirtual com.google.common.cache.LocalCache$Segment.copyEntry:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
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 38
36: StackMap locals: int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
aload 12
invokevirtual com.google.common.cache.LocalCache$Segment.removeCollectedEntry:(Lcom/google/common/cache/ReferenceEntry;)V
37: iinc 3 -1
end local 15 end local 14 end local 13 38: StackMap locals:
StackMap stack:
aload 12
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 12
StackMap locals:
StackMap stack:
39: 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 40: StackMap locals: com.google.common.cache.LocalCache$Segment java.util.concurrent.atomic.AtomicReferenceArray int int java.util.concurrent.atomic.AtomicReferenceArray int int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
41: iload 6
iload 2
if_icmplt 10
end local 6 42: aload 0
aload 4
putfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
43: aload 0
iload 3
putfield com.google.common.cache.LocalCache$Segment.count:I
44: 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 45 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
1 45 1 oldTable Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
2 45 2 oldCapacity I
5 45 3 newCount I
6 45 4 newTable Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
8 45 5 newMask I
9 42 6 oldIndex I
11 40 7 head Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
13 40 8 next Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
14 40 9 headIndex I
18 40 10 tail Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
19 40 11 tailIndex I
20 27 12 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
22 25 13 newIndex I
29 40 12 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
31 38 13 newIndex I
32 38 14 newNext Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
33 38 15 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
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=8, locals=17, 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.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 5
start local 5 2: aload 0
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 7
start local 7 4: iload 2
aload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 8
start local 8 5: aload 7
iload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 9
start local 9 6: aload 9
astore 10
start local 10 7: goto 49
8: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object java.lang.Object long java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 11
start local 11 9: aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 48
10: aload 11
ifnull 48
11: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 11
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 48
12: aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 12
start local 12 13: aload 12
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 13
start local 13 14: aload 13
ifnonnull 34
15: aload 12
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 31
16: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 14
start local 14 17: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
18: aload 0
19: aload 9
20: aload 10
21: aload 11
22: iload 2
23: aload 13
24: aload 12
25: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
26: invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
27: astore 15
start local 15 28: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 14
29: aload 7
iload 8
aload 15
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
30: aload 0
iload 14
putfield com.google.common.cache.LocalCache$Segment.count:I
end local 15 end local 14 31: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
32: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
33: iconst_0
ireturn
34: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.valueEquivalence:Lcom/google/common/base/Equivalence;
aload 3
aload 13
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 44
35: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
36: aload 0
37: aload 1
iload 2
aload 13
aload 12
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
getstatic com.google.common.cache.RemovalCause.REPLACED:Lcom/google/common/cache/RemovalCause;
38: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
39: aload 0
aload 10
aload 1
aload 4
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
40: aload 0
aload 10
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
41: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
42: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
43: iconst_1
ireturn
44: StackMap locals:
StackMap stack:
aload 0
aload 10
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.recordLockedRead:(Lcom/google/common/cache/ReferenceEntry;J)V
45: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
46: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
47: iconst_0
ireturn
end local 13 end local 12 end local 11 48: StackMap locals:
StackMap stack:
aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 10
StackMap locals:
StackMap stack:
49: aload 10
ifnonnull 8
end local 10 50: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
51: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
52: iconst_0
ireturn
end local 9 end local 8 end local 7 end local 5 53: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
astore 16
54: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
55: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
56: aload 16
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 57 1 key TK;
0 57 2 hash I
0 57 3 oldValue TV;
0 57 4 newValue TV;
2 53 5 now J
4 53 7 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
5 53 8 index I
6 53 9 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
7 50 10 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
9 48 11 entryKey TK;
13 48 12 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
14 48 13 entryValue TV;
17 31 14 newCount I
28 31 15 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 31 53 any
34 41 53 any
44 45 53 any
48 50 53 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=8, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 4
start local 4 2: aload 0
lload 4
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 6
start local 6 4: iload 2
aload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 7
start local 7 5: aload 6
iload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 8
start local 8 6: aload 8
astore 9
start local 9 7: goto 45
8: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object long java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 10
start local 10 9: aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 44
10: aload 10
ifnull 44
11: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.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 44
12: aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 11
start local 11 13: aload 11
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 12
start local 12 14: aload 12
ifnonnull 34
15: aload 11
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 31
16: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 13
start local 13 17: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
18: aload 0
19: aload 8
20: aload 9
21: aload 10
22: iload 2
23: aload 12
24: aload 11
25: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
26: invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
27: astore 14
start local 14 28: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 13
29: aload 6
iload 7
aload 14
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
30: aload 0
iload 13
putfield com.google.common.cache.LocalCache$Segment.count:I
end local 14 end local 13 31: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
32: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
33: aconst_null
areturn
34: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
35: aload 0
36: aload 1
iload 2
aload 12
aload 11
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
getstatic com.google.common.cache.RemovalCause.REPLACED:Lcom/google/common/cache/RemovalCause;
37: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
38: aload 0
aload 9
aload 1
aload 3
lload 4
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
39: aload 0
aload 9
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
40: aload 12
astore 16
41: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
42: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
43: aload 16
areturn
end local 12 end local 11 end local 10 44: StackMap locals:
StackMap stack:
aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 9
StackMap locals:
StackMap stack:
45: aload 9
ifnonnull 8
end local 9 46: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
47: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
48: aconst_null
areturn
end local 8 end local 7 end local 6 end local 4 49: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
astore 15
50: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
51: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
52: aload 15
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 53 1 key TK;
0 53 2 hash I
0 53 3 newValue TV;
2 49 4 now J
4 49 6 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
5 49 7 index I
6 49 8 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
7 46 9 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
9 44 10 entryKey TK;
13 44 11 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
14 44 12 entryValue TV;
17 31 13 newCount I
28 31 14 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 31 49 any
34 41 49 any
44 46 49 any
Signature: (TK;ITV;)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
key
hash
newValue
V remove(, );
descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 3
start local 3 2: aload 0
lload 3
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 5
start local 5 4: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 6
start local 6 5: iload 2
aload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 7
start local 7 6: aload 6
iload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 8
start local 8 7: aload 8
astore 9
start local 9 8: goto 35
9: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 10
start local 10 10: aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 34
11: aload 10
ifnull 34
12: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.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 34
13: aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 11
start local 11 14: aload 11
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 12
start local 12 15: aload 12
ifnull 18
16: getstatic com.google.common.cache.RemovalCause.EXPLICIT:Lcom/google/common/cache/RemovalCause;
astore 13
start local 13 17: goto 24
end local 13 StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
18: aload 11
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 21
19: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
astore 13
start local 13 20: goto 24
end local 13 21: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
22: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
23: aconst_null
areturn
start local 13 24: StackMap locals: com.google.common.cache.RemovalCause
StackMap stack:
aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
25: aload 0
aload 8
aload 9
aload 10
iload 2
aload 12
aload 11
aload 13
invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
26: astore 14
start local 14 27: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 5
28: aload 6
iload 7
aload 14
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
29: aload 0
iload 5
putfield com.google.common.cache.LocalCache$Segment.count:I
30: aload 12
astore 16
31: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
32: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
33: aload 16
areturn
end local 14 end local 13 end local 12 end local 11 end local 10 34: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 9
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 9
StackMap locals:
StackMap stack:
35: aload 9
ifnonnull 9
end local 9 36: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
37: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
38: aconst_null
areturn
end local 8 end local 7 end local 6 end local 5 end local 3 39: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int
StackMap stack: java.lang.Throwable
astore 15
40: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
41: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
42: aload 15
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 43 1 key Ljava/lang/Object;
0 43 2 hash I
2 39 3 now J
4 39 5 newCount I
5 39 6 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
6 39 7 index I
7 39 8 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
8 36 9 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
10 34 10 entryKey TK;
14 34 11 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
15 34 12 entryValue TV;
17 18 13 cause Lcom/google/common/cache/RemovalCause;
20 21 13 cause Lcom/google/common/cache/RemovalCause;
24 34 13 cause Lcom/google/common/cache/RemovalCause;
27 34 14 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 21 39 any
24 31 39 any
34 36 39 any
Signature: (Ljava/lang/Object;I)TV;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
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=8, locals=18, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 4
start local 4 2: aload 0
lload 4
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 6
start local 6 4: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 7
start local 7 5: iload 2
aload 7
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 8
start local 8 6: aload 7
iload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 9
start local 9 7: aload 9
astore 10
start local 10 8: goto 37
9: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 11
start local 11 10: aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 36
11: aload 11
ifnull 36
12: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 11
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 36
13: aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 12
start local 12 14: aload 12
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 13
start local 13 15: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.valueEquivalence:Lcom/google/common/base/Equivalence;
aload 3
aload 13
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 18
16: getstatic com.google.common.cache.RemovalCause.EXPLICIT:Lcom/google/common/cache/RemovalCause;
astore 14
start local 14 17: goto 24
end local 14 StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
18: aload 13
ifnonnull 21
aload 12
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 21
19: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
astore 14
start local 14 20: goto 24
end local 14 21: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
22: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
23: iconst_0
ireturn
start local 14 24: StackMap locals: com.google.common.cache.RemovalCause
StackMap stack:
aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
25: aload 0
aload 9
aload 10
aload 11
iload 2
aload 13
aload 12
aload 14
invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
26: astore 15
start local 15 27: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 6
28: aload 7
iload 8
aload 15
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
29: aload 0
iload 6
putfield com.google.common.cache.LocalCache$Segment.count:I
30: aload 14
getstatic com.google.common.cache.RemovalCause.EXPLICIT:Lcom/google/common/cache/RemovalCause;
if_acmpne 31
iconst_1
goto 32
StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
31: iconst_0
StackMap locals:
StackMap stack: int
32: istore 17
33: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
34: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
35: iload 17
ireturn
end local 15 end local 14 end local 13 end local 12 end local 11 36: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 10
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 10
StackMap locals:
StackMap stack:
37: aload 10
ifnonnull 9
end local 10 38: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
39: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
40: iconst_0
ireturn
end local 9 end local 8 end local 7 end local 6 end local 4 41: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
astore 16
42: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
43: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
44: aload 16
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 45 1 key Ljava/lang/Object;
0 45 2 hash I
0 45 3 value Ljava/lang/Object;
2 41 4 now J
4 41 6 newCount I
5 41 7 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
6 41 8 index I
7 41 9 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
8 38 10 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
10 36 11 entryKey TK;
14 36 12 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
15 36 13 entryValue TV;
17 18 14 cause Lcom/google/common/cache/RemovalCause;
20 21 14 cause Lcom/google/common/cache/RemovalCause;
24 36 14 cause Lcom/google/common/cache/RemovalCause;
27 36 15 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 21 41 any
24 33 41 any
36 38 41 any
MethodParameters:
Name Flags
key
hash
value
boolean storeLoadedValue(K, int, com.google.common.cache.LocalCache$LoadingValueReference<K, V>, );
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;Ljava/lang/Object;)Z
flags: (0x0000)
Code:
stack=6, locals=17, 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.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 5
start local 5 2: aload 0
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
iadd
istore 7
start local 7 4: iload 7
aload 0
getfield com.google.common.cache.LocalCache$Segment.threshold:I
if_icmple 7
5: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.expand:()V
6: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
iadd
istore 7
7: StackMap locals: long int
StackMap stack:
aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 8
start local 8 8: iload 2
aload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 9
start local 9 9: aload 8
iload 9
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 10
start local 10 10: aload 10
astore 11
start local 11 11: goto 38
12: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$LoadingValueReference java.lang.Object long int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 12
start local 12 13: aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 37
14: aload 12
ifnull 37
15: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.keyEquivalence:Lcom/google/common/base/Equivalence;
aload 1
aload 12
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 37
16: aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 13
start local 13 17: aload 13
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 14
start local 14 18: aload 3
aload 13
if_acmpeq 20
19: aload 14
ifnonnull 33
aload 13
getstatic com.google.common.cache.LocalCache.UNSET:Lcom/google/common/cache/LocalCache$ValueReference;
if_acmpeq 33
20: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference java.lang.Object
StackMap stack:
aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
21: aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.isActive:()Z
ifeq 27
22: aload 14
ifnonnull 23
getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
goto 24
StackMap locals:
StackMap stack:
23: getstatic com.google.common.cache.RemovalCause.REPLACED:Lcom/google/common/cache/RemovalCause;
24: StackMap locals:
StackMap stack: com.google.common.cache.RemovalCause
astore 15
start local 15 25: aload 0
aload 1
iload 2
aload 14
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.getWeight:()I
aload 15
invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
26: iinc 7 -1
end local 15 27: StackMap locals:
StackMap stack:
aload 0
aload 11
aload 1
aload 4
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
28: aload 0
iload 7
putfield com.google.common.cache.LocalCache$Segment.count:I
29: aload 0
aload 11
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
30: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
31: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
32: iconst_1
ireturn
33: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 4
iconst_0
getstatic com.google.common.cache.RemovalCause.REPLACED:Lcom/google/common/cache/RemovalCause;
invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
34: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
35: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
36: iconst_0
ireturn
end local 14 end local 13 end local 12 37: StackMap locals:
StackMap stack:
aload 11
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 11
StackMap locals:
StackMap stack:
38: aload 11
ifnonnull 12
end local 11 39: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
40: aload 0
aload 1
iload 2
aload 10
invokevirtual com.google.common.cache.LocalCache$Segment.newEntry:(Ljava/lang/Object;ILcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 11
start local 11 41: aload 0
aload 11
aload 1
aload 4
lload 5
invokevirtual com.google.common.cache.LocalCache$Segment.setValue:(Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;Ljava/lang/Object;J)V
42: aload 8
iload 9
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
43: aload 0
iload 7
putfield com.google.common.cache.LocalCache$Segment.count:I
44: aload 0
aload 11
invokevirtual com.google.common.cache.LocalCache$Segment.evictEntries:(Lcom/google/common/cache/ReferenceEntry;)V
45: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
46: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
47: iconst_1
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 48: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$LoadingValueReference java.lang.Object
StackMap stack: java.lang.Throwable
astore 16
49: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
50: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
51: aload 16
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 52 1 key TK;
0 52 2 hash I
0 52 3 oldValueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 52 4 newValue TV;
2 48 5 now J
4 48 7 newCount I
8 48 8 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
9 48 9 index I
10 48 10 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
11 39 11 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
13 37 12 entryKey TK;
17 37 13 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
18 37 14 entryValue TV;
25 27 15 cause Lcom/google/common/cache/RemovalCause;
41 48 11 newEntry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 30 48 any
33 34 48 any
37 45 48 any
Signature: (TK;ILcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;TV;)Z
MethodParameters:
Name Flags
key
hash
oldValueReference
newValue
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=10, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
ifeq 41
1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 1
start local 1 3: aload 0
lload 1
invokevirtual com.google.common.cache.LocalCache$Segment.preWriteCleanup:(J)V
4: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 3
start local 3 5: iconst_0
istore 4
start local 4 6: goto 22
7: StackMap locals: long java.util.concurrent.atomic.AtomicReferenceArray int
StackMap stack:
aload 3
iload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 5
start local 5 8: goto 20
9: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ifeq 19
10: aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 6
start local 6 11: aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 7
start local 7 12: aload 6
ifnull 13
aload 7
ifnonnull 14
StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
13: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
goto 15
StackMap locals:
StackMap stack:
14: getstatic com.google.common.cache.RemovalCause.EXPLICIT:Lcom/google/common/cache/RemovalCause;
15: StackMap locals:
StackMap stack: com.google.common.cache.RemovalCause
astore 8
start local 8 16: aload 0
17: aload 6
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
aload 7
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
aload 8
18: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
end local 8 end local 7 end local 6 19: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 5
StackMap locals:
StackMap stack:
20: aload 5
ifnonnull 9
end local 5 21: iinc 4 1
StackMap locals:
StackMap stack:
22: iload 4
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
if_icmplt 7
end local 4 23: iconst_0
istore 4
start local 4 24: goto 27
25: StackMap locals:
StackMap stack:
aload 3
iload 4
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
26: iinc 4 1
StackMap locals:
StackMap stack:
27: iload 4
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
if_icmplt 25
end local 4 28: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.clearReferenceQueues:()V
29: aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
30: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
31: aload 0
getfield com.google.common.cache.LocalCache$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
32: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
33: aload 0
iconst_0
putfield com.google.common.cache.LocalCache$Segment.count:I
end local 3 end local 1 34: goto 39
StackMap locals: com.google.common.cache.LocalCache$Segment
StackMap stack: java.lang.Throwable
35: astore 9
36: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
37: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
38: aload 9
athrow
39: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
40: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
41: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
3 34 1 now J
5 34 3 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
6 23 4 i I
8 21 5 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
11 19 6 key TK;
12 19 7 value TV;
16 19 8 cause Lcom/google/common/cache/RemovalCause;
24 28 4 i I
Exception table:
from to target type
2 35 35 any
com.google.common.cache.ReferenceEntry<K, V> removeValueFromChain(com.google.common.cache.ReferenceEntry<K, V>, com.google.common.cache.ReferenceEntry<K, V>, K, int, V, com.google.common.cache.LocalCache$ValueReference<K, V>, com.google.common.cache.RemovalCause);
descriptor: (Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
flags: (0x0000)
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 3
iload 4
aload 5
aload 6
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
aload 7
invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
aload 2
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 2
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
3: aload 6
invokeinterface com.google.common.cache.LocalCache$ValueReference.isLoading:()Z
ifeq 6
4: aload 6
aconst_null
invokeinterface com.google.common.cache.LocalCache$ValueReference.notifyNewValue:(Ljava/lang/Object;)V
5: aload 1
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntryFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
areturn
end local 7 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 7 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 7 1 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 7 2 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 7 3 key TK;
0 7 4 hash I
0 7 5 value TV;
0 7 6 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
0 7 7 cause Lcom/google/common/cache/RemovalCause;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;Lcom/google/common/cache/ReferenceEntry<TK;TV;>;TK;ITV;Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
first
entry
key
hash
value
valueReference
cause
com.google.common.cache.ReferenceEntry<K, V> removeEntryFromChain(com.google.common.cache.ReferenceEntry<K, V>, com.google.common.cache.ReferenceEntry<K, V>);
descriptor: (Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
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.cache.LocalCache$Segment.count:I
istore 3
start local 3 1: aload 2
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 4
start local 4 2: aload 1
astore 5
start local 5 3: goto 11
4: StackMap locals: int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
aload 5
aload 4
invokevirtual com.google.common.cache.LocalCache$Segment.copyEntry:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 6
start local 6 5: aload 6
ifnull 8
6: aload 6
astore 4
7: goto 10
8: StackMap locals: com.google.common.cache.ReferenceEntry
StackMap stack:
aload 0
aload 5
invokevirtual com.google.common.cache.LocalCache$Segment.removeCollectedEntry:(Lcom/google/common/cache/ReferenceEntry;)V
9: iinc 3 -1
end local 6 10: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 5
StackMap locals:
StackMap stack:
11: aload 5
aload 2
if_acmpne 4
end local 5 12: aload 0
iload 3
putfield com.google.common.cache.LocalCache$Segment.count:I
13: 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 14 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 14 1 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 14 2 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
1 14 3 newCount I
2 14 4 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
3 12 5 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
5 10 6 next Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;Lcom/google/common/cache/ReferenceEntry<TK;TV;>;)Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
first
entry
void removeCollectedEntry(com.google.common.cache.ReferenceEntry<K, V>);
descriptor: (Lcom/google/common/cache/ReferenceEntry;)V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
1: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
2: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
3: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
4: aload 1
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
5: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
6: invokevirtual com.google.common.cache.LocalCache$Segment.enqueueNotification:(Ljava/lang/Object;ILjava/lang/Object;ILcom/google/common/cache/RemovalCause;)V
7: aload 0
getfield com.google.common.cache.LocalCache$Segment.writeQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
8: aload 0
getfield com.google.common.cache.LocalCache$Segment.accessQueue:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.remove:(Ljava/lang/Object;)Z
pop
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 10 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;)V
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
entry
boolean reclaimKey(com.google.common.cache.ReferenceEntry<K, V>, );
descriptor: (Lcom/google/common/cache/ReferenceEntry;I)Z
flags: (0x0000)
Code:
stack=8, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 3
start local 3 2: aload 0
getfield com.google.common.cache.LocalCache$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.cache.ReferenceEntry
astore 6
start local 6 5: aload 6
astore 7
start local 7 6: goto 26
7: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.ReferenceEntry int int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 7
aload 1
if_acmpne 25
8: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
9: aload 0
10: aload 6
11: aload 7
12: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
13: iload 2
14: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
15: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
16: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
17: invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
18: astore 8
start local 8 19: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 3
20: aload 4
iload 5
aload 8
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
21: aload 0
iload 3
putfield com.google.common.cache.LocalCache$Segment.count:I
22: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
23: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
24: iconst_1
ireturn
end local 8 25: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 7
StackMap locals:
StackMap stack:
26: aload 7
ifnonnull 7
end local 7 27: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
28: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
29: iconst_0
ireturn
end local 6 end local 5 end local 4 end local 3 30: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.ReferenceEntry int
StackMap stack: java.lang.Throwable
astore 9
31: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
32: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
33: aload 9
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 34 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 34 2 hash I
2 30 3 newCount I
3 30 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
4 30 5 index I
5 30 6 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
6 27 7 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
19 25 8 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 22 30 any
25 27 30 any
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;I)Z
MethodParameters:
Name Flags
entry
hash
boolean reclaimValue(K, int, com.google.common.cache.LocalCache$ValueReference<K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/LocalCache$ValueReference;)Z
flags: (0x0000)
Code:
stack=8, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 4
start local 4 2: aload 0
getfield com.google.common.cache.LocalCache$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.cache.ReferenceEntry
astore 7
start local 7 5: aload 7
astore 8
start local 8 6: goto 36
7: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$ValueReference int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 9
start local 9 8: aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 35
9: aload 9
ifnull 35
10: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.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 35
11: aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 10
start local 10 12: aload 10
aload 3
if_acmpne 31
13: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
14: aload 0
15: aload 7
16: aload 8
17: aload 9
18: iload 2
19: aload 3
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
20: aload 3
21: getstatic com.google.common.cache.RemovalCause.COLLECTED:Lcom/google/common/cache/RemovalCause;
22: invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
23: astore 11
start local 11 24: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 4
25: aload 5
iload 6
aload 11
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
26: aload 0
iload 4
putfield com.google.common.cache.LocalCache$Segment.count:I
27: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
28: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.isHeldByCurrentThread:()Z
ifne 30
29: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
30: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference com.google.common.cache.ReferenceEntry
StackMap stack:
iconst_1
ireturn
end local 11 31: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
32: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.isHeldByCurrentThread:()Z
ifne 34
33: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
34: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 10 end local 9 35: StackMap locals:
StackMap stack:
aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 8
StackMap locals:
StackMap stack:
36: aload 8
ifnonnull 7
end local 8 37: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
38: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.isHeldByCurrentThread:()Z
ifne 40
39: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
40: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 7 end local 6 end local 5 end local 4 41: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$ValueReference
StackMap stack: java.lang.Throwable
astore 12
42: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
43: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.isHeldByCurrentThread:()Z
ifne 45
44: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
45: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$ValueReference top top top top top top top top java.lang.Throwable
StackMap stack:
aload 12
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 46 1 key TK;
0 46 2 hash I
0 46 3 valueReference Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
2 41 4 newCount I
3 41 5 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
4 41 6 index I
5 41 7 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
6 37 8 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
8 35 9 entryKey TK;
12 35 10 v Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
24 31 11 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 27 41 any
35 37 41 any
Signature: (TK;ILcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;)Z
MethodParameters:
Name Flags
key
hash
valueReference
boolean removeLoadingValue(K, int, com.google.common.cache.LocalCache$LoadingValueReference<K, V>);
descriptor: (Ljava/lang/Object;ILcom/google/common/cache/LocalCache$LoadingValueReference;)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.cache.LocalCache$Segment.lock:()V
1: aload 0
getfield com.google.common.cache.LocalCache$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.cache.ReferenceEntry
astore 6
start local 6 4: aload 6
astore 7
start local 7 5: goto 24
6: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$LoadingValueReference java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
astore 8
start local 8 7: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getHash:()I
iload 2
if_icmpne 23
8: aload 8
ifnull 23
9: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.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 23
10: aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
astore 9
start local 9 11: aload 9
aload 3
if_acmpne 20
12: aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.isActive:()Z
ifeq 15
13: aload 7
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.getOldValue:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.ReferenceEntry.setValueReference:(Lcom/google/common/cache/LocalCache$ValueReference;)V
14: goto 17
15: StackMap locals: java.lang.Object com.google.common.cache.LocalCache$ValueReference
StackMap stack:
aload 0
aload 6
aload 7
invokevirtual com.google.common.cache.LocalCache$Segment.removeEntryFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/ReferenceEntry;
astore 10
start local 10 16: aload 4
iload 5
aload 10
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
end local 10 17: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
18: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
19: iconst_1
ireturn
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
21: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
22: iconst_0
ireturn
end local 9 end local 8 23: StackMap locals:
StackMap stack:
aload 7
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 7
StackMap locals:
StackMap stack:
24: aload 7
ifnonnull 6
end local 7 25: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
26: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
27: iconst_0
ireturn
end local 6 end local 5 end local 4 28: StackMap locals: com.google.common.cache.LocalCache$Segment java.lang.Object int com.google.common.cache.LocalCache$LoadingValueReference
StackMap stack: java.lang.Throwable
astore 11
29: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
30: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.postWriteCleanup:()V
31: aload 11
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 32 1 key TK;
0 32 2 hash I
0 32 3 valueReference Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
2 28 4 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
3 28 5 index I
4 28 6 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
5 25 7 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
7 23 8 entryKey TK;
11 23 9 v Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
16 17 10 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Exception table:
from to target type
1 17 28 any
23 25 28 any
Signature: (TK;ILcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;)Z
MethodParameters:
Name Flags
key
hash
valueReference
boolean removeEntry(com.google.common.cache.ReferenceEntry<K, V>, int, com.google.common.cache.RemovalCause);
descriptor: (Lcom/google/common/cache/ReferenceEntry;ILcom/google/common/cache/RemovalCause;)Z
flags: (0x0000)
Code:
stack=8, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 4
start local 4 1: aload 0
getfield com.google.common.cache.LocalCache$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 5
start local 5 2: iload 2
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
iand
istore 6
start local 6 3: aload 5
iload 6
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.cache.ReferenceEntry
astore 7
start local 7 4: aload 7
astore 8
start local 8 5: goto 23
6: StackMap locals: com.google.common.cache.LocalCache$Segment com.google.common.cache.ReferenceEntry int com.google.common.cache.RemovalCause int java.util.concurrent.atomic.AtomicReferenceArray int com.google.common.cache.ReferenceEntry com.google.common.cache.ReferenceEntry
StackMap stack:
aload 8
aload 1
if_acmpne 22
7: aload 0
dup
getfield com.google.common.cache.LocalCache$Segment.modCount:I
iconst_1
iadd
putfield com.google.common.cache.LocalCache$Segment.modCount:I
8: aload 0
9: aload 7
10: aload 8
11: aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getKey:()Ljava/lang/Object;
12: iload 2
13: aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
14: aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getValueReference:()Lcom/google/common/cache/LocalCache$ValueReference;
15: aload 3
16: invokevirtual com.google.common.cache.LocalCache$Segment.removeValueFromChain:(Lcom/google/common/cache/ReferenceEntry;Lcom/google/common/cache/ReferenceEntry;Ljava/lang/Object;ILjava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference;Lcom/google/common/cache/RemovalCause;)Lcom/google/common/cache/ReferenceEntry;
17: astore 9
start local 9 18: aload 0
getfield com.google.common.cache.LocalCache$Segment.count:I
iconst_1
isub
istore 4
19: aload 5
iload 6
aload 9
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.set:(ILjava/lang/Object;)V
20: aload 0
iload 4
putfield com.google.common.cache.LocalCache$Segment.count:I
21: iconst_1
ireturn
end local 9 22: StackMap locals:
StackMap stack:
aload 8
invokeinterface com.google.common.cache.ReferenceEntry.getNext:()Lcom/google/common/cache/ReferenceEntry;
astore 8
StackMap locals:
StackMap stack:
23: aload 8
ifnonnull 6
end local 8 24: iconst_0
ireturn
end local 7 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 25 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 25 1 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
0 25 2 hash I
0 25 3 cause Lcom/google/common/cache/RemovalCause;
1 25 4 newCount I
2 25 5 table Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/google/common/cache/ReferenceEntry<TK;TV;>;>;
3 25 6 index I
4 25 7 first Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
5 24 8 e Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
18 22 9 newFirst Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Lcom/google/common/cache/ReferenceEntry<TK;TV;>;ILcom/google/common/cache/RemovalCause;)Z
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
entry
hash
cause
void postReadCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$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.cache.LocalCache$Segment.cleanUp:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
void preWriteCleanup(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual com.google.common.cache.LocalCache$Segment.runLockedCleanup:(J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 2 1 now J
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "this")
MethodParameters:
Name Flags
now
void postWriteCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.runUnlockedCleanup:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
void cleanUp();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
getfield com.google.common.cache.LocalCache.ticker:Lcom/google/common/base/Ticker;
invokevirtual com.google.common.base.Ticker.read:()J
lstore 1
start local 1 1: aload 0
lload 1
invokevirtual com.google.common.cache.LocalCache$Segment.runLockedCleanup:(J)V
2: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.runUnlockedCleanup:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
1 4 1 now J
void runLockedCleanup(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.tryLock:()Z
ifeq 9
1: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.drainReferenceQueues:()V
2: aload 0
lload 1
invokevirtual com.google.common.cache.LocalCache$Segment.expireEntries:(J)V
3: aload 0
getfield com.google.common.cache.LocalCache$Segment.readCount:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 3
6: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.unlock:()V
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
0 10 1 now J
Exception table:
from to target type
1 5 5 any
MethodParameters:
Name Flags
now
void runUnlockedCleanup();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.cache.LocalCache$Segment.isHeldByCurrentThread:()Z
ifne 2
1: aload 0
getfield com.google.common.cache.LocalCache$Segment.map:Lcom/google/common/cache/LocalCache;
invokevirtual com.google.common.cache.LocalCache.processPendingNotifications:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/cache/LocalCache$Segment<TK;TV;>;
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/concurrent/locks/ReentrantLock;
SourceFile: "LocalCache.java"
NestHost: com.google.common.cache.LocalCache
InnerClasses:
public abstract StatsCounter = com.google.common.cache.AbstractCache$StatsCounter of com.google.common.cache.AbstractCache
public final InvalidCacheLoadException = com.google.common.cache.CacheLoader$InvalidCacheLoadException of com.google.common.cache.CacheLoader
final AccessQueue = com.google.common.cache.LocalCache$AccessQueue of com.google.common.cache.LocalCache
abstract EntryFactory = com.google.common.cache.LocalCache$EntryFactory of com.google.common.cache.LocalCache
LoadingValueReference = com.google.common.cache.LocalCache$LoadingValueReference of com.google.common.cache.LocalCache
Segment = com.google.common.cache.LocalCache$Segment of com.google.common.cache.LocalCache
com.google.common.cache.LocalCache$Segment$1
abstract Strength = com.google.common.cache.LocalCache$Strength of com.google.common.cache.LocalCache
abstract ValueReference = com.google.common.cache.LocalCache$ValueReference of com.google.common.cache.LocalCache
final WriteQueue = com.google.common.cache.LocalCache$WriteQueue of com.google.common.cache.LocalCache