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