if (i > this.threshold)
{
expand();
i = this.count + 1;
}
AtomicReferenceArray localAtomicReferenceArray = this.table;
int j = paramInt & localAtomicReferenceArray.length() - 1;
LocalCache.ReferenceEntry localReferenceEntry1 = (LocalCache.ReferenceEntry)localAtomicReferenceArray.get(j);
for (LocalCache.ReferenceEntry localReferenceEntry2 = localReferenceEntry1; localReferenceEntry2 != null; localReferenceEntry2 = localReferenceEntry2.getNext())
{
localObject1 = localReferenceEntry2.getKey();
if ((localReferenceEntry2.getHash() == paramInt) && (localObject1 != null) && (this.map.keyEquivalence.equivalent(paramObject1, localObject1)))
{
LocalCache.ValueReference localValueReference = localReferenceEntry2.getValueReference();
Object localObject2 = localValueReference.get();
if (localObject2 == null)
{
this.modCount += 1;
if (localValueReference.isActive())
{
enqueueNotification(paramObject1, paramInt, localValueReference, RemovalCause.COLLECTED);
setValue(localReferenceEntry2, paramObject1, paramObject2, l);
i = this.count;
}
else
{
setValue(localReferenceEntry2, paramObject1, paramObject2, l);
i = this.count + 1;
}
this.count = i;
evictEntries();
localObject3 = null;
return localObject3;
}
if (paramBoolean)
{
recordLockedRead(localReferenceEntry2, l);
localObject3 = localObject2;
return localObject3;
}
this.modCount += 1;
enqueueNotification(paramObject1, paramInt, localValueReference, RemovalCause.REPLACED);
setValue(localReferenceEntry2, paramObject1, paramObject2, l);
evictEntries();
Object localObject3 = localObject2;
return localObject3;
}
}
this.modCount += 1;
localReferenceEntry2 = newEntry(paramObject1, paramInt, localReferenceEntry1);
setValue(localReferenceEntry2, paramObject1, paramObject2, l);
localAtomicReferenceArray.set(j, localReferenceEntry2);
i = this.count + 1;
this.count = i;
evictEntries();
Object localObject1 = null;
return localObject1;