public final class com.google.common.collect.HashBiMap extends com.google.common.collect.Maps$IteratorBasedAbstractMap implements com.google.common.collect.BiMap, java.io.Serializable
{
private static final double LOAD_FACTOR;
private transient com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV;
private transient com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK;
private transient com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder;
private transient com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder;
private transient int size;
private transient int mask;
private transient int modCount;
private transient com.google.common.collect.BiMap inverse;
private static final long serialVersionUID;
public static com.google.common.collect.HashBiMap create()
{
com.google.common.collect.HashBiMap v;
v = staticinvoke <com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap create(int)>(16);
return v;
}
public static com.google.common.collect.HashBiMap create(int)
{
int v;
com.google.common.collect.HashBiMap v;
v := @parameter: int;
v = new com.google.common.collect.HashBiMap;
specialinvoke v.<com.google.common.collect.HashBiMap: void <init>(int)>(v);
return v;
}
public static com.google.common.collect.HashBiMap create(java.util.Map)
{
int v;
com.google.common.collect.HashBiMap v;
java.util.Map v;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: int size()>();
v = staticinvoke <com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap create(int)>(v);
virtualinvoke v.<com.google.common.collect.HashBiMap: void putAll(java.util.Map)>(v);
return v;
}
private void <init>(int)
{
int v;
com.google.common.collect.HashBiMap v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: int;
specialinvoke v.<com.google.common.collect.Maps$IteratorBasedAbstractMap: void <init>()>();
specialinvoke v.<com.google.common.collect.HashBiMap: void init(int)>(v);
return;
}
private void init(int)
{
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v, v;
int v, v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: int;
staticinvoke <com.google.common.collect.CollectPreconditions: int checkNonnegative(int,java.lang.String)>(v, "expectedSize");
v = staticinvoke <com.google.common.collect.Hashing: int closedTableSize(int,double)>(v, 1.0);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] createTable(int)>(v);
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV> = v;
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] createTable(int)>(v);
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK> = v;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap: int size> = 0;
v = v - 1;
v.<com.google.common.collect.HashBiMap: int mask> = v;
v.<com.google.common.collect.HashBiMap: int modCount> = 0;
return;
}
private void delete(com.google.common.collect.HashBiMap$BiEntry)
{
int v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v, v, v, v;
com.google.common.collect.HashBiMap$BiEntry v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: com.google.common.collect.HashBiMap$BiEntry;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int keyHash>;
v = v.<com.google.common.collect.HashBiMap: int mask>;
v = v & v;
v = null;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
v = v[v];
label:
if v != v goto label;
if v != null goto label;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket>;
v[v] = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket> = v;
goto label;
label:
v = v;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket>;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: int valueHash>;
v = v.<com.google.common.collect.HashBiMap: int mask>;
v = v & v;
v = null;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK>;
v = v[v];
label:
if v != v goto label;
if v != null goto label;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket>;
v[v] = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket> = v;
goto label;
label:
v = v;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket>;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
if v != null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder> = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = v;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
if v != null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder> = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = v;
label:
v = v.<com.google.common.collect.HashBiMap: int size>;
v = v - 1;
v.<com.google.common.collect.HashBiMap: int size> = v;
v = v.<com.google.common.collect.HashBiMap: int modCount>;
v = v + 1;
v.<com.google.common.collect.HashBiMap: int modCount> = v;
return;
}
private void insert(com.google.common.collect.HashBiMap$BiEntry, com.google.common.collect.HashBiMap$BiEntry)
{
int v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v, v, v, v;
com.google.common.collect.HashBiMap$BiEntry v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: com.google.common.collect.HashBiMap$BiEntry;
v := @parameter: com.google.common.collect.HashBiMap$BiEntry;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int keyHash>;
v = v.<com.google.common.collect.HashBiMap: int mask>;
v = v & v;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
v = v[v];
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket> = v;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
v[v] = v;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int valueHash>;
v = v.<com.google.common.collect.HashBiMap: int mask>;
v = v & v;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK>;
v = v[v];
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket> = v;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK>;
v[v] = v;
if v != null goto label;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = v;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = null;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder>;
if v != null goto label;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder> = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = v;
label:
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder> = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = v;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
if v != null goto label;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder> = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = v;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = v;
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
if v != null goto label;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder> = v;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = v;
label:
v = v.<com.google.common.collect.HashBiMap: int size>;
v = v + 1;
v.<com.google.common.collect.HashBiMap: int size> = v;
v = v.<com.google.common.collect.HashBiMap: int modCount>;
v = v + 1;
v.<com.google.common.collect.HashBiMap: int modCount> = v;
return;
}
private com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object, int)
{
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v;
int v, v, v, v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v, v;
boolean v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
v = v.<com.google.common.collect.HashBiMap: int mask>;
v = v & v;
v = v[v];
label:
if v == null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int keyHash>;
if v != v goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object key>;
v = staticinvoke <com.google.common.base.Objects: boolean equal(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
return v;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket>;
goto label;
label:
return null;
}
private com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object, int)
{
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v;
int v, v, v, v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v, v;
boolean v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK>;
v = v.<com.google.common.collect.HashBiMap: int mask>;
v = v & v;
v = v[v];
label:
if v == null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int valueHash>;
if v != v goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object value>;
v = staticinvoke <com.google.common.base.Objects: boolean equal(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
return v;
label:
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket>;
goto label;
label:
return null;
}
public boolean containsKey(java.lang.Object)
{
com.google.common.collect.HashBiMap v;
int v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v;
boolean v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int)>(v, v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean containsValue(java.lang.Object)
{
com.google.common.collect.HashBiMap v;
int v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v;
boolean v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int)>(v, v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object get(java.lang.Object)
{
com.google.common.collect.HashBiMap v;
int v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int)>(v, v);
v = staticinvoke <com.google.common.collect.Maps: java.lang.Object valueOrNull(java.util.Map$Entry)>(v);
return v;
}
public java.lang.Object put(java.lang.Object, java.lang.Object)
{
com.google.common.collect.HashBiMap v;
java.lang.Object v, v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = specialinvoke v.<com.google.common.collect.HashBiMap: java.lang.Object put(java.lang.Object,java.lang.Object,boolean)>(v, v, 0);
return v;
}
private java.lang.Object put(java.lang.Object, java.lang.Object, boolean)
{
int v, v, v, v, v;
java.lang.String v, v, v;
boolean v, v;
java.lang.IllegalArgumentException v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry v, v, v;
java.lang.Object v, v, v, v;
java.lang.StringBuilder v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int)>(v, v);
if v == null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int valueHash>;
if v != v goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object value>;
v = staticinvoke <com.google.common.base.Objects: boolean equal(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
return v;
label:
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int)>(v, v);
if v == null goto label;
if v == 0 goto label;
specialinvoke v.<com.google.common.collect.HashBiMap: void delete(com.google.common.collect.HashBiMap$BiEntry)>(v);
goto label;
label:
v = new java.lang.IllegalArgumentException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = 23 + v;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("value already present: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new com.google.common.collect.HashBiMap$BiEntry;
specialinvoke v.<com.google.common.collect.HashBiMap$BiEntry: void <init>(java.lang.Object,int,java.lang.Object,int)>(v, v, v, v);
if v == null goto label;
specialinvoke v.<com.google.common.collect.HashBiMap: void delete(com.google.common.collect.HashBiMap$BiEntry)>(v);
specialinvoke v.<com.google.common.collect.HashBiMap: void insert(com.google.common.collect.HashBiMap$BiEntry,com.google.common.collect.HashBiMap$BiEntry)>(v, v);
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = null;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object value>;
return v;
label:
specialinvoke v.<com.google.common.collect.HashBiMap: void insert(com.google.common.collect.HashBiMap$BiEntry,com.google.common.collect.HashBiMap$BiEntry)>(v, null);
specialinvoke v.<com.google.common.collect.HashBiMap: void rehashIfNecessary()>();
return null;
}
public java.lang.Object forcePut(java.lang.Object, java.lang.Object)
{
com.google.common.collect.HashBiMap v;
java.lang.Object v, v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = specialinvoke v.<com.google.common.collect.HashBiMap: java.lang.Object put(java.lang.Object,java.lang.Object,boolean)>(v, v, 1);
return v;
}
private java.lang.Object putInverse(java.lang.Object, java.lang.Object, boolean)
{
int v, v, v, v, v;
java.lang.String v, v, v;
boolean v, v;
java.lang.IllegalArgumentException v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry v, v, v;
java.lang.Object v, v, v, v;
java.lang.StringBuilder v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int)>(v, v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int)>(v, v);
if v == null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: int keyHash>;
if v != v goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object key>;
v = staticinvoke <com.google.common.base.Objects: boolean equal(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
return v;
label:
if v == null goto label;
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = 21 + v;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("key already present: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
specialinvoke v.<com.google.common.collect.HashBiMap: void delete(com.google.common.collect.HashBiMap$BiEntry)>(v);
label:
if v == null goto label;
specialinvoke v.<com.google.common.collect.HashBiMap: void delete(com.google.common.collect.HashBiMap$BiEntry)>(v);
label:
v = new com.google.common.collect.HashBiMap$BiEntry;
specialinvoke v.<com.google.common.collect.HashBiMap$BiEntry: void <init>(java.lang.Object,int,java.lang.Object,int)>(v, v, v, v);
specialinvoke v.<com.google.common.collect.HashBiMap: void insert(com.google.common.collect.HashBiMap$BiEntry,com.google.common.collect.HashBiMap$BiEntry)>(v, v);
if v == null goto label;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = null;
label:
if v == null goto label;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = null;
label:
specialinvoke v.<com.google.common.collect.HashBiMap: void rehashIfNecessary()>();
v = staticinvoke <com.google.common.collect.Maps: java.lang.Object keyOrNull(java.util.Map$Entry)>(v);
return v;
}
private void rehashIfNecessary()
{
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v, v, v;
int v, v, v, v, v, v, v;
com.google.common.collect.HashBiMap$BiEntry v;
boolean v;
v := @this: com.google.common.collect.HashBiMap;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
v = v.<com.google.common.collect.HashBiMap: int size>;
v = lengthof v;
v = staticinvoke <com.google.common.collect.Hashing: boolean needsResizing(int,int,double)>(v, v, 1.0);
if v == 0 goto label;
v = lengthof v;
v = v * 2;
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] createTable(int)>(v);
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV> = v;
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] createTable(int)>(v);
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK> = v;
v = v - 1;
v.<com.google.common.collect.HashBiMap: int mask> = v;
v.<com.google.common.collect.HashBiMap: int size> = 0;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder>;
label:
if v == null goto label;
specialinvoke v.<com.google.common.collect.HashBiMap: void insert(com.google.common.collect.HashBiMap$BiEntry,com.google.common.collect.HashBiMap$BiEntry)>(v, v);
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
goto label;
label:
v = v.<com.google.common.collect.HashBiMap: int modCount>;
v = v + 1;
v.<com.google.common.collect.HashBiMap: int modCount> = v;
label:
return;
}
private com.google.common.collect.HashBiMap$BiEntry[] createTable(int)
{
int v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: int;
v = newarray (com.google.common.collect.HashBiMap$BiEntry)[v];
return v;
}
public java.lang.Object remove(java.lang.Object)
{
com.google.common.collect.HashBiMap v;
int v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.lang.Object;
v = staticinvoke <com.google.common.collect.Hashing: int smearedHash(java.lang.Object)>(v);
v = specialinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int)>(v, v);
if v != null goto label;
return null;
label:
specialinvoke v.<com.google.common.collect.HashBiMap: void delete(com.google.common.collect.HashBiMap$BiEntry)>(v);
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder> = null;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object value>;
return v;
}
public void clear()
{
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry[] v, v;
int v, v;
v := @this: com.google.common.collect.HashBiMap;
v.<com.google.common.collect.HashBiMap: int size> = 0;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV>;
staticinvoke <java.util.Arrays: void fill(java.lang.Object[],java.lang.Object)>(v, null);
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK>;
staticinvoke <java.util.Arrays: void fill(java.lang.Object[],java.lang.Object)>(v, null);
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder> = null;
v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder> = null;
v = v.<com.google.common.collect.HashBiMap: int modCount>;
v = v + 1;
v.<com.google.common.collect.HashBiMap: int modCount> = v;
return;
}
public int size()
{
int v;
com.google.common.collect.HashBiMap v;
v := @this: com.google.common.collect.HashBiMap;
v = v.<com.google.common.collect.HashBiMap: int size>;
return v;
}
public java.util.Set keySet()
{
com.google.common.collect.HashBiMap$KeySet v;
com.google.common.collect.HashBiMap v;
v := @this: com.google.common.collect.HashBiMap;
v = new com.google.common.collect.HashBiMap$KeySet;
specialinvoke v.<com.google.common.collect.HashBiMap$KeySet: void <init>(com.google.common.collect.HashBiMap)>(v);
return v;
}
public java.util.Set values()
{
com.google.common.collect.BiMap v;
java.util.Set v;
com.google.common.collect.HashBiMap v;
v := @this: com.google.common.collect.HashBiMap;
v = virtualinvoke v.<com.google.common.collect.HashBiMap: com.google.common.collect.BiMap inverse()>();
v = interfaceinvoke v.<com.google.common.collect.BiMap: java.util.Set keySet()>();
return v;
}
java.util.Iterator entryIterator()
{
com.google.common.collect.HashBiMap$1 v;
com.google.common.collect.HashBiMap v;
v := @this: com.google.common.collect.HashBiMap;
v = new com.google.common.collect.HashBiMap$1;
specialinvoke v.<com.google.common.collect.HashBiMap$1: void <init>(com.google.common.collect.HashBiMap)>(v);
return v;
}
public void forEach(java.util.function.BiConsumer)
{
com.google.common.collect.HashBiMap v;
java.util.function.BiConsumer v;
com.google.common.collect.HashBiMap$BiEntry v;
java.lang.Object v, v;
v := @this: com.google.common.collect.HashBiMap;
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.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder>;
label:
if v == null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object key>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object value>;
interfaceinvoke v.<java.util.function.BiConsumer: void accept(java.lang.Object,java.lang.Object)>(v, v);
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
goto label;
label:
return;
}
public void replaceAll(java.util.function.BiFunction)
{
java.util.function.BiFunction v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$BiEntry v, v;
java.lang.Object v, v, v, v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.util.function.BiFunction;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder>;
virtualinvoke v.<com.google.common.collect.HashBiMap: void clear()>();
v = v;
label:
if v == null goto label;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object key>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object key>;
v = v.<com.google.common.collect.HashBiMap$BiEntry: java.lang.Object value>;
v = interfaceinvoke v.<java.util.function.BiFunction: java.lang.Object apply(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<com.google.common.collect.HashBiMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<com.google.common.collect.HashBiMap$BiEntry: com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder>;
goto label;
label:
return;
}
public com.google.common.collect.BiMap inverse()
{
com.google.common.collect.BiMap v, v;
com.google.common.collect.HashBiMap v;
com.google.common.collect.HashBiMap$Inverse v;
v := @this: com.google.common.collect.HashBiMap;
v = v.<com.google.common.collect.HashBiMap: com.google.common.collect.BiMap inverse>;
if v != null goto label;
v = new com.google.common.collect.HashBiMap$Inverse;
v = v;
specialinvoke v.<com.google.common.collect.HashBiMap$Inverse: void <init>(com.google.common.collect.HashBiMap)>(v);
v.<com.google.common.collect.HashBiMap: com.google.common.collect.BiMap inverse> = v;
goto label;
label:
v = v;
label:
return v;
}
private void writeObject(java.io.ObjectOutputStream) throws java.io.IOException
{
com.google.common.collect.HashBiMap v;
java.io.ObjectOutputStream v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.io.ObjectOutputStream;
virtualinvoke v.<java.io.ObjectOutputStream: void defaultWriteObject()>();
staticinvoke <com.google.common.collect.Serialization: void writeMap(java.util.Map,java.io.ObjectOutputStream)>(v, v);
return;
}
private void readObject(java.io.ObjectInputStream) throws java.io.IOException, java.lang.ClassNotFoundException
{
int v;
java.io.ObjectInputStream v;
com.google.common.collect.HashBiMap v;
v := @this: com.google.common.collect.HashBiMap;
v := @parameter: java.io.ObjectInputStream;
virtualinvoke v.<java.io.ObjectInputStream: void defaultReadObject()>();
v = staticinvoke <com.google.common.collect.Serialization: int readCount(java.io.ObjectInputStream)>(v);
specialinvoke v.<com.google.common.collect.HashBiMap: void init(int)>(16);
staticinvoke <com.google.common.collect.Serialization: void populateMap(java.util.Map,java.io.ObjectInputStream,int)>(v, v, v);
return;
}
}