class com.google.common.collect.MapMakerInternalMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap, java.io.Serializable
{
static final int MAXIMUM_CAPACITY;
static final int MAX_SEGMENTS;
static final int CONTAINS_VALUE_RETRIES;
static final int DRAIN_THRESHOLD;
static final int DRAIN_MAX;
static final long CLEANUP_EXECUTOR_DELAY_SECS;
final transient int segmentMask;
final transient int segmentShift;
final transient com.google.common.collect.MapMakerInternalMap$Segment[] segments;
final int concurrencyLevel;
final com.google.common.base.Equivalence keyEquivalence;
final transient com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper;
static final com.google.common.collect.MapMakerInternalMap$WeakValueReference UNSET_WEAK_VALUE_REFERENCE;
transient java.util.Set keySet;
transient java.util.Collection values;
transient java.util.Set entrySet;
private static final long serialVersionUID;
private void <init>(com.google.common.collect.MapMaker, com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)
{
com.google.common.collect.MapMakerInternalMap$Segment[] v, v, v;
com.google.common.collect.MapMakerInternalMap$InternalEntryHelper v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.google.common.base.Equivalence v;
com.google.common.collect.MapMakerInternalMap$Segment v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMaker v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: com.google.common.collect.MapMaker;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper;
specialinvoke v.<java.util.AbstractMap: void <init>()>();
v = virtualinvoke v.<com.google.common.collect.MapMaker: int getConcurrencyLevel()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, 65536);
v.<com.google.common.collect.MapMakerInternalMap: int concurrencyLevel> = v;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.base.Equivalence getKeyEquivalence()>();
v.<com.google.common.collect.MapMakerInternalMap: com.google.common.base.Equivalence keyEquivalence> = v;
v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper> = v;
v = virtualinvoke v.<com.google.common.collect.MapMaker: int getInitialCapacity()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, 1073741824);
v = 0;
v = 1;
label:
v = v.<com.google.common.collect.MapMakerInternalMap: int concurrencyLevel>;
if v >= v goto label;
v = v + 1;
v = v << 1;
goto label;
label:
v = 32 - v;
v.<com.google.common.collect.MapMakerInternalMap: int segmentShift> = v;
v = v - 1;
v.<com.google.common.collect.MapMakerInternalMap: int segmentMask> = v;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] newSegmentArray(int)>(v);
v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments> = v;
v = v / v;
v = v * v;
if v >= v goto label;
v = v + 1;
label:
v = 1;
label:
if v >= v goto label;
v = v << 1;
goto label;
label:
v = 0;
label:
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = lengthof v;
if v >= v goto label;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = (int) -1;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment createSegment(int,int)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
return;
}
static com.google.common.collect.MapMakerInternalMap create(com.google.common.collect.MapMaker)
{
java.lang.AssertionError v;
com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper v;
com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper v;
com.google.common.collect.MapMakerInternalMap$Strength v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper v;
com.google.common.collect.MapMakerInternalMap v, v, v, v;
com.google.common.collect.MapMaker v;
com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper v;
v := @parameter: com.google.common.collect.MapMaker;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = new com.google.common.collect.MapMakerInternalMap;
v = staticinvoke <com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper: com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper instance()>();
specialinvoke v.<com.google.common.collect.MapMakerInternalMap: void <init>(com.google.common.collect.MapMaker,com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)>(v, v);
return v;
label:
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength WEAK>;
if v != v goto label;
v = new com.google.common.collect.MapMakerInternalMap;
v = staticinvoke <com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper: com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper instance()>();
specialinvoke v.<com.google.common.collect.MapMakerInternalMap: void <init>(com.google.common.collect.MapMaker,com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)>(v, v);
return v;
label:
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength WEAK>;
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = new com.google.common.collect.MapMakerInternalMap;
v = staticinvoke <com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper: com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper instance()>();
specialinvoke v.<com.google.common.collect.MapMakerInternalMap: void <init>(com.google.common.collect.MapMaker,com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)>(v, v);
return v;
label:
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength WEAK>;
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength WEAK>;
if v != v goto label;
v = new com.google.common.collect.MapMakerInternalMap;
v = staticinvoke <com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper: com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper instance()>();
specialinvoke v.<com.google.common.collect.MapMakerInternalMap: void <init>(com.google.common.collect.MapMaker,com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)>(v, v);
return v;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
}
static com.google.common.collect.MapMakerInternalMap createWithDummyValues(com.google.common.collect.MapMaker)
{
java.lang.AssertionError v;
com.google.common.collect.MapMakerInternalMap$StrongKeyDummyValueEntry$Helper v;
com.google.common.collect.MapMakerInternalMap$WeakKeyDummyValueEntry$Helper v;
com.google.common.collect.MapMakerInternalMap$Strength v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
com.google.common.collect.MapMakerInternalMap v, v;
com.google.common.collect.MapMaker v;
v := @parameter: com.google.common.collect.MapMaker;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = new com.google.common.collect.MapMakerInternalMap;
v = staticinvoke <com.google.common.collect.MapMakerInternalMap$StrongKeyDummyValueEntry$Helper: com.google.common.collect.MapMakerInternalMap$StrongKeyDummyValueEntry$Helper instance()>();
specialinvoke v.<com.google.common.collect.MapMakerInternalMap: void <init>(com.google.common.collect.MapMaker,com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)>(v, v);
return v;
label:
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength WEAK>;
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength STRONG>;
if v != v goto label;
v = new com.google.common.collect.MapMakerInternalMap;
v = staticinvoke <com.google.common.collect.MapMakerInternalMap$WeakKeyDummyValueEntry$Helper: com.google.common.collect.MapMakerInternalMap$WeakKeyDummyValueEntry$Helper instance()>();
specialinvoke v.<com.google.common.collect.MapMakerInternalMap: void <init>(com.google.common.collect.MapMaker,com.google.common.collect.MapMakerInternalMap$InternalEntryHelper)>(v, v);
return v;
label:
v = virtualinvoke v.<com.google.common.collect.MapMaker: com.google.common.collect.MapMakerInternalMap$Strength getValueStrength()>();
v = <com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.collect.MapMakerInternalMap$Strength WEAK>;
if v != v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Map cannot have both weak and dummy values");
throw v;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
}
static com.google.common.collect.MapMakerInternalMap$WeakValueReference unsetWeakValueReference()
{
com.google.common.collect.MapMakerInternalMap$WeakValueReference v;
v = <com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$WeakValueReference UNSET_WEAK_VALUE_REFERENCE>;
return v;
}
static int rehash(int)
{
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: int;
v = v << 15;
v = (int) -12931;
v = v ^ v;
v = v + v;
v = v >>> 10;
v = v ^ v;
v = v << 3;
v = v + v;
v = v >>> 6;
v = v ^ v;
v = v << 2;
v = v << 14;
v = v + v;
v = v + v;
v = v >>> 16;
v = v ^ v;
return v;
}
com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.google.common.collect.MapMakerInternalMap$InternalEntry, com.google.common.collect.MapMakerInternalMap$InternalEntry)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v, v, v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntry;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntry;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: int getHash()>();
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.google.common.collect.MapMakerInternalMap$InternalEntry,com.google.common.collect.MapMakerInternalMap$InternalEntry)>(v, v);
return v;
}
int hash(java.lang.Object)
{
com.google.common.base.Equivalence v;
int v, v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.base.Equivalence keyEquivalence>;
v = virtualinvoke v.<com.google.common.base.Equivalence: int hash(java.lang.Object)>(v);
v = staticinvoke <com.google.common.collect.MapMakerInternalMap: int rehash(int)>(v);
return v;
}
void reclaimValue(com.google.common.collect.MapMakerInternalMap$WeakValueReference)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
com.google.common.collect.MapMakerInternalMap$WeakValueReference v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: com.google.common.collect.MapMakerInternalMap$WeakValueReference;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$WeakValueReference: com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry()>();
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: int getHash()>();
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: java.lang.Object getKey()>();
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: boolean reclaimValue(java.lang.Object,int,com.google.common.collect.MapMakerInternalMap$WeakValueReference)>(v, v, v);
return;
}
void reclaimKey(com.google.common.collect.MapMakerInternalMap$InternalEntry)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntry;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: int getHash()>();
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: boolean reclaimKey(com.google.common.collect.MapMakerInternalMap$InternalEntry,int)>(v, v);
return;
}
boolean isLiveForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntry;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: int getHash()>();
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object getLiveValueForTesting(com.google.common.collect.MapMakerInternalMap$InternalEntry)>(v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)
{
com.google.common.collect.MapMakerInternalMap$Segment[] v;
com.google.common.collect.MapMakerInternalMap$Segment v;
int v, v, v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: int;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = v.<com.google.common.collect.MapMakerInternalMap: int segmentShift>;
v = v >>> v;
v = v.<com.google.common.collect.MapMakerInternalMap: int segmentMask>;
v = v & v;
v = v[v];
return v;
}
com.google.common.collect.MapMakerInternalMap$Segment createSegment(int, int)
{
com.google.common.collect.MapMakerInternalMap$InternalEntryHelper v;
com.google.common.collect.MapMakerInternalMap$Segment v;
int v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: int;
v := @parameter: int;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.google.common.collect.MapMakerInternalMap,int,int)>(v, v, v);
return v;
}
java.lang.Object getLiveValue(com.google.common.collect.MapMakerInternalMap$InternalEntry)
{
java.lang.Object v, v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntry;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: java.lang.Object getKey()>();
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: java.lang.Object getValue()>();
return v;
}
final com.google.common.collect.MapMakerInternalMap$Segment[] newSegmentArray(int)
{
int v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$Segment[] v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: int;
v = newarray (com.google.common.collect.MapMakerInternalMap$Segment)[v];
return v;
}
com.google.common.collect.MapMakerInternalMap$Strength keyStrength()
{
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntryHelper v;
com.google.common.collect.MapMakerInternalMap$Strength v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Strength keyStrength()>();
return v;
}
com.google.common.collect.MapMakerInternalMap$Strength valueStrength()
{
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntryHelper v;
com.google.common.collect.MapMakerInternalMap$Strength v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Strength valueStrength()>();
return v;
}
com.google.common.base.Equivalence valueEquivalence()
{
com.google.common.base.Equivalence v;
com.google.common.collect.MapMakerInternalMap$InternalEntryHelper v;
com.google.common.collect.MapMakerInternalMap$Strength v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Strength valueStrength()>();
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.base.Equivalence defaultEquivalence()>();
return v;
}
public boolean isEmpty()
{
com.google.common.collect.MapMakerInternalMap$Segment[] v;
long v;
byte v, v;
int v, v, v, v, v, v, v, v;
boolean v;
com.google.common.collect.MapMakerInternalMap$Segment v, v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = 0L;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int count>;
if v == 0 goto label;
return 0;
label:
v = v[v];
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int modCount>;
v = v + v;
v = v + 1;
goto label;
label:
v = v cmp 0L;
if v == 0 goto label;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int count>;
if v == 0 goto label;
return 0;
label:
v = v[v];
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int modCount>;
v = v - v;
v = v + 1;
goto label;
label:
v = v cmp 0L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
}
public int size()
{
com.google.common.collect.MapMakerInternalMap$Segment[] v;
com.google.common.collect.MapMakerInternalMap$Segment v;
long v;
int v, v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = 0L;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int count>;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <com.google.common.primitives.Ints: int saturatedCast(long)>(v);
return v;
}
public java.lang.Object get(java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
if v != null goto label;
return null;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object get(java.lang.Object,int)>(v, v);
return v;
}
com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
if v != null goto label;
return null;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int)>(v, v);
return v;
}
public boolean containsKey(java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: boolean containsKey(java.lang.Object,int)>(v, v);
return v;
}
public boolean containsValue(java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment[] v;
long v, v;
java.util.concurrent.atomic.AtomicReferenceArray v;
byte v;
int v, v, v, v, v, v, v;
boolean v;
com.google.common.base.Equivalence v;
com.google.common.collect.MapMakerInternalMap$Segment v;
java.lang.Object v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
if v != null goto label;
return 0;
label:
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = -1L;
v = 0;
label:
if v >= 3 goto label;
v = 0L;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int count>;
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: java.util.concurrent.atomic.AtomicReferenceArray table>;
v = 0;
label:
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: java.lang.Object get(int)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object getLiveValue(com.google.common.collect.MapMakerInternalMap$InternalEntry)>(v);
if v == null goto label;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.base.Equivalence valueEquivalence()>();
v = virtualinvoke v.<com.google.common.base.Equivalence: boolean equivalent(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
return 1;
label:
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: com.google.common.collect.MapMakerInternalMap$InternalEntry getNext()>();
goto label;
label:
v = v + 1;
goto label;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int modCount>;
v = v + v;
v = v + 1;
goto label;
label:
v = v cmp v;
if v == 0 goto label;
v = v;
v = v + 1;
goto label;
label:
return 0;
}
public java.lang.Object put(java.lang.Object, java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean)>(v, v, v, 0);
return v;
}
public java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean)>(v, v, v, 1);
return v;
}
public void putAll(java.util.Map)
{
java.util.Iterator v;
java.util.Set v;
java.util.Map v;
java.lang.Object v, v, v;
com.google.common.collect.MapMakerInternalMap v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return;
}
public java.lang.Object remove(java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
if v != null goto label;
return null;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object remove(java.lang.Object,int)>(v, v);
return v;
}
public boolean remove(java.lang.Object, java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v;
com.google.common.collect.MapMakerInternalMap v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
if v == null goto label;
if v != null goto label;
label:
return 0;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: boolean remove(java.lang.Object,int,java.lang.Object)>(v, v, v);
return v;
}
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v, v;
com.google.common.collect.MapMakerInternalMap v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: boolean replace(java.lang.Object,int,java.lang.Object,java.lang.Object)>(v, v, v, v);
return v;
}
public java.lang.Object replace(java.lang.Object, java.lang.Object)
{
com.google.common.collect.MapMakerInternalMap$Segment v;
int v;
java.lang.Object v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: int hash(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: java.lang.Object replace(java.lang.Object,int,java.lang.Object)>(v, v, v);
return v;
}
public void clear()
{
com.google.common.collect.MapMakerInternalMap$Segment[] v;
com.google.common.collect.MapMakerInternalMap$Segment v;
int v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: void clear()>();
v = v + 1;
goto label;
label:
return;
}
public java.util.Set keySet()
{
com.google.common.collect.MapMakerInternalMap$KeySet v;
java.util.Set v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: java.util.Set keySet>;
if v == null goto label;
v = v;
goto label;
label:
v = new com.google.common.collect.MapMakerInternalMap$KeySet;
v = v;
specialinvoke v.<com.google.common.collect.MapMakerInternalMap$KeySet: void <init>(com.google.common.collect.MapMakerInternalMap)>(v);
v.<com.google.common.collect.MapMakerInternalMap: java.util.Set keySet> = v;
label:
return v;
}
public java.util.Collection values()
{
java.util.Collection v, v;
com.google.common.collect.MapMakerInternalMap v;
com.google.common.collect.MapMakerInternalMap$Values v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: java.util.Collection values>;
if v == null goto label;
v = v;
goto label;
label:
v = new com.google.common.collect.MapMakerInternalMap$Values;
v = v;
specialinvoke v.<com.google.common.collect.MapMakerInternalMap$Values: void <init>(com.google.common.collect.MapMakerInternalMap)>(v);
v.<com.google.common.collect.MapMakerInternalMap: java.util.Collection values> = v;
label:
return v;
}
public java.util.Set entrySet()
{
com.google.common.collect.MapMakerInternalMap$EntrySet v;
java.util.Set v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = v.<com.google.common.collect.MapMakerInternalMap: java.util.Set entrySet>;
if v == null goto label;
v = v;
goto label;
label:
v = new com.google.common.collect.MapMakerInternalMap$EntrySet;
v = v;
specialinvoke v.<com.google.common.collect.MapMakerInternalMap$EntrySet: void <init>(com.google.common.collect.MapMakerInternalMap)>(v);
v.<com.google.common.collect.MapMakerInternalMap: java.util.Set entrySet> = v;
label:
return v;
}
private static java.util.ArrayList toArrayList(java.util.Collection)
{
java.util.Iterator v;
java.util.Collection v;
int v;
java.util.ArrayList v;
v := @parameter: java.util.Collection;
v = new java.util.ArrayList;
v = interfaceinvoke v.<java.util.Collection: int size()>();
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
staticinvoke <com.google.common.collect.Iterators: boolean addAll(java.util.Collection,java.util.Iterator)>(v, v);
return v;
}
java.lang.Object writeReplace()
{
com.google.common.base.Equivalence v, v;
com.google.common.collect.MapMakerInternalMap$Strength v, v, v;
com.google.common.collect.MapMakerInternalMap$SerializationProxy v;
com.google.common.collect.MapMakerInternalMap$InternalEntryHelper v, v, v;
int v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap;
v = new com.google.common.collect.MapMakerInternalMap$SerializationProxy;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Strength keyStrength()>();
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Strength valueStrength()>();
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.base.Equivalence keyEquivalence>;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntryHelper: com.google.common.collect.MapMakerInternalMap$Strength valueStrength()>();
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Strength: com.google.common.base.Equivalence defaultEquivalence()>();
v = v.<com.google.common.collect.MapMakerInternalMap: int concurrencyLevel>;
specialinvoke v.<com.google.common.collect.MapMakerInternalMap$SerializationProxy: void <init>(com.google.common.collect.MapMakerInternalMap$Strength,com.google.common.collect.MapMakerInternalMap$Strength,com.google.common.base.Equivalence,com.google.common.base.Equivalence,int,java.util.concurrent.ConcurrentMap)>(v, v, v, v, v, v);
return v;
}
static void <clinit>()
{
com.google.common.collect.MapMakerInternalMap$1 v;
v = new com.google.common.collect.MapMakerInternalMap$1;
specialinvoke v.<com.google.common.collect.MapMakerInternalMap$1: void <init>()>();
<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$WeakValueReference UNSET_WEAK_VALUE_REFERENCE> = v;
return;
}
}