final class com.google.common.collect.RegularImmutableMap extends com.google.common.collect.ImmutableMap
{
static final com.google.common.collect.ImmutableMap EMPTY;
static final double MAX_LOAD_FACTOR;
static final double HASH_FLOODING_FPP;
static final int MAX_HASH_BUCKET_LENGTH;
final transient java.util.Map$Entry[] entries;
private final transient com.google.common.collect.ImmutableMapEntry[] table;
private final transient int mask;
private static final long serialVersionUID;
static transient com.google.common.collect.ImmutableMap fromEntries(java.util.Map$Entry[])
{
int v;
com.google.common.collect.ImmutableMap v;
java.util.Map$Entry[] v;
v := @parameter: java.util.Map$Entry[];
v = lengthof v;
v = staticinvoke <com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMap fromEntryArray(int,java.util.Map$Entry[])>(v, v);
return v;
}
static com.google.common.collect.ImmutableMap fromEntryArray(int, java.util.Map$Entry[])
{
int v, v, v, v, v, v, v, v, v, v;
java.util.Map$Entry[] v, v, v;
java.util.Map$Entry v;
com.google.common.collect.ImmutableMap v, v;
com.google.common.collect.ImmutableMapEntry v, v;
com.google.common.collect.RegularImmutableMap v;
com.google.common.collect.ImmutableMapEntry[] v;
com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry v;
java.lang.Object v, v, v;
v := @parameter: int;
v := @parameter: java.util.Map$Entry[];
v = lengthof v;
staticinvoke <com.google.common.base.Preconditions: int checkPositionIndex(int,int)>(v, v);
if v != 0 goto label;
v = <com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMap EMPTY>;
return v;
label:
v = lengthof v;
if v != v goto label;
v = v;
goto label;
label:
v = staticinvoke <com.google.common.collect.ImmutableMapEntry: com.google.common.collect.ImmutableMapEntry[] createEntryArray(int)>(v);
label:
v = v;
v = staticinvoke <com.google.common.collect.Hashing: int closedTableSize(int,double)>(v, 1.2);
v = staticinvoke <com.google.common.collect.ImmutableMapEntry: com.google.common.collect.ImmutableMapEntry[] createEntryArray(int)>(v);
v = v - 1;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
staticinvoke <com.google.common.collect.CollectPreconditions: void checkEntryNotNull(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = staticinvoke <com.google.common.collect.Hashing: int smear(int)>(v);
v = v & v;
v = v[v];
if v != null goto label;
v = staticinvoke <com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMapEntry makeImmutable(java.util.Map$Entry,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = new com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry;
v = v;
specialinvoke v.<com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry: void <init>(java.lang.Object,java.lang.Object,com.google.common.collect.ImmutableMapEntry)>(v, v, v);
label:
v[v] = v;
v[v] = v;
v = staticinvoke <com.google.common.collect.RegularImmutableMap: int checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.google.common.collect.ImmutableMapEntry)>(v, v, v);
if v <= 8 goto label;
v = staticinvoke <com.google.common.collect.JdkBackedImmutableMap: com.google.common.collect.ImmutableMap create(int,java.util.Map$Entry[])>(v, v);
return v;
label:
v = v + 1;
goto label;
label:
v = new com.google.common.collect.RegularImmutableMap;
specialinvoke v.<com.google.common.collect.RegularImmutableMap: void <init>(java.util.Map$Entry[],com.google.common.collect.ImmutableMapEntry[],int)>(v, v, v);
return v;
}
static com.google.common.collect.ImmutableMapEntry makeImmutable(java.util.Map$Entry, java.lang.Object, java.lang.Object)
{
java.util.Map$Entry v;
java.lang.Object v, v;
boolean v, v, v;
v := @parameter: java.util.Map$Entry;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = v instanceof com.google.common.collect.ImmutableMapEntry;
if v == 0 goto label;
v = virtualinvoke v.<com.google.common.collect.ImmutableMapEntry: boolean isReusable()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v != 0 goto label;
v = new com.google.common.collect.ImmutableMapEntry;
specialinvoke v.<com.google.common.collect.ImmutableMapEntry: void <init>(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
}
static com.google.common.collect.ImmutableMapEntry makeImmutable(java.util.Map$Entry)
{
java.util.Map$Entry v;
com.google.common.collect.ImmutableMapEntry v;
java.lang.Object v, v;
v := @parameter: java.util.Map$Entry;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMapEntry makeImmutable(java.util.Map$Entry,java.lang.Object,java.lang.Object)>(v, v, v);
return v;
}
private void <init>(java.util.Map$Entry[], com.google.common.collect.ImmutableMapEntry[], int)
{
com.google.common.collect.ImmutableMapEntry[] v;
com.google.common.collect.RegularImmutableMap v;
int v;
java.util.Map$Entry[] v;
v := @this: com.google.common.collect.RegularImmutableMap;
v := @parameter: java.util.Map$Entry[];
v := @parameter: com.google.common.collect.ImmutableMapEntry[];
v := @parameter: int;
specialinvoke v.<com.google.common.collect.ImmutableMap: void <init>()>();
v.<com.google.common.collect.RegularImmutableMap: java.util.Map$Entry[] entries> = v;
v.<com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMapEntry[] table> = v;
v.<com.google.common.collect.RegularImmutableMap: int mask> = v;
return;
}
static int checkNoConflictInKeyBucket(java.lang.Object, java.util.Map$Entry, com.google.common.collect.ImmutableMapEntry)
{
java.util.Map$Entry v;
com.google.common.collect.ImmutableMapEntry v;
int v;
java.lang.Object v, v;
boolean v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.util.Map$Entry;
v := @parameter: com.google.common.collect.ImmutableMapEntry;
v = 0;
label:
if v == null goto label;
v = virtualinvoke v.<com.google.common.collect.ImmutableMapEntry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.collect.RegularImmutableMap: void checkNoConflict(boolean,java.lang.String,java.util.Map$Entry,java.util.Map$Entry)>(v, "key", v, v);
v = v + 1;
v = virtualinvoke v.<com.google.common.collect.ImmutableMapEntry: com.google.common.collect.ImmutableMapEntry getNextInKeyBucket()>();
goto label;
label:
return v;
}
public java.lang.Object get(java.lang.Object)
{
com.google.common.collect.ImmutableMapEntry[] v;
com.google.common.collect.RegularImmutableMap v;
int v;
java.lang.Object v, v;
v := @this: com.google.common.collect.RegularImmutableMap;
v := @parameter: java.lang.Object;
v = v.<com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMapEntry[] table>;
v = v.<com.google.common.collect.RegularImmutableMap: int mask>;
v = staticinvoke <com.google.common.collect.RegularImmutableMap: java.lang.Object get(java.lang.Object,com.google.common.collect.ImmutableMapEntry[],int)>(v, v, v);
return v;
}
static java.lang.Object get(java.lang.Object, com.google.common.collect.ImmutableMapEntry[], int)
{
com.google.common.collect.ImmutableMapEntry v;
com.google.common.collect.ImmutableMapEntry[] v;
int v, v, v, v;
java.lang.Object v, v, v;
boolean v;
v := @parameter: java.lang.Object;
v := @parameter: com.google.common.collect.ImmutableMapEntry[];
v := @parameter: int;
if v == null goto label;
if v != null goto label;
label:
return null;
label:
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = staticinvoke <com.google.common.collect.Hashing: int smear(int)>(v);
v = v & v;
v = v[v];
label:
if v == null goto label;
v = virtualinvoke v.<com.google.common.collect.ImmutableMapEntry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.common.collect.ImmutableMapEntry: java.lang.Object getValue()>();
return v;
label:
v = virtualinvoke v.<com.google.common.collect.ImmutableMapEntry: com.google.common.collect.ImmutableMapEntry getNextInKeyBucket()>();
goto label;
label:
return null;
}
public void forEach(java.util.function.BiConsumer)
{
java.util.Map$Entry v;
com.google.common.collect.RegularImmutableMap v;
int v, v;
java.util.function.BiConsumer v;
java.lang.Object v, v;
java.util.Map$Entry[] v;
v := @this: com.google.common.collect.RegularImmutableMap;
v := @parameter: java.util.function.BiConsumer;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = v.<com.google.common.collect.RegularImmutableMap: java.util.Map$Entry[] entries>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.function.BiConsumer: void accept(java.lang.Object,java.lang.Object)>(v, v);
v = v + 1;
goto label;
label:
return;
}
public int size()
{
int v;
com.google.common.collect.RegularImmutableMap v;
java.util.Map$Entry[] v;
v := @this: com.google.common.collect.RegularImmutableMap;
v = v.<com.google.common.collect.RegularImmutableMap: java.util.Map$Entry[] entries>;
v = lengthof v;
return v;
}
boolean isPartialView()
{
com.google.common.collect.RegularImmutableMap v;
v := @this: com.google.common.collect.RegularImmutableMap;
return 0;
}
com.google.common.collect.ImmutableSet createEntrySet()
{
com.google.common.collect.RegularImmutableMap v;
java.util.Map$Entry[] v;
com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet v;
v := @this: com.google.common.collect.RegularImmutableMap;
v = new com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet;
v = v.<com.google.common.collect.RegularImmutableMap: java.util.Map$Entry[] entries>;
specialinvoke v.<com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet: void <init>(com.google.common.collect.ImmutableMap,java.util.Map$Entry[])>(v, v);
return v;
}
com.google.common.collect.ImmutableSet createKeySet()
{
com.google.common.collect.RegularImmutableMap$KeySet v;
com.google.common.collect.RegularImmutableMap v;
v := @this: com.google.common.collect.RegularImmutableMap;
v = new com.google.common.collect.RegularImmutableMap$KeySet;
specialinvoke v.<com.google.common.collect.RegularImmutableMap$KeySet: void <init>(com.google.common.collect.RegularImmutableMap)>(v);
return v;
}
com.google.common.collect.ImmutableCollection createValues()
{
com.google.common.collect.RegularImmutableMap$Values v;
com.google.common.collect.RegularImmutableMap v;
v := @this: com.google.common.collect.RegularImmutableMap;
v = new com.google.common.collect.RegularImmutableMap$Values;
specialinvoke v.<com.google.common.collect.RegularImmutableMap$Values: void <init>(com.google.common.collect.RegularImmutableMap)>(v);
return v;
}
static void <clinit>()
{
com.google.common.collect.RegularImmutableMap v;
java.util.Map$Entry[] v;
v = new com.google.common.collect.RegularImmutableMap;
v = <com.google.common.collect.ImmutableMap: java.util.Map$Entry[] EMPTY_ENTRY_ARRAY>;
specialinvoke v.<com.google.common.collect.RegularImmutableMap: void <init>(java.util.Map$Entry[],com.google.common.collect.ImmutableMapEntry[],int)>(v, null, 0);
<com.google.common.collect.RegularImmutableMap: com.google.common.collect.ImmutableMap EMPTY> = v;
return;
}
}