abstract class com.google.common.collect.MapMakerInternalMap$HashIterator extends java.lang.Object implements java.util.Iterator
{
int nextSegmentIndex;
int nextTableIndex;
com.google.common.collect.MapMakerInternalMap$Segment currentSegment;
java.util.concurrent.atomic.AtomicReferenceArray currentTable;
com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry;
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal;
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned;
final com.google.common.collect.MapMakerInternalMap this$0;
void <init>(com.google.common.collect.MapMakerInternalMap)
{
com.google.common.collect.MapMakerInternalMap$HashIterator v;
com.google.common.collect.MapMakerInternalMap$Segment[] v;
int v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v := @parameter: com.google.common.collect.MapMakerInternalMap;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = lengthof v;
v = v - 1;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextSegmentIndex> = v;
v = (int) -1;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextTableIndex> = v;
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: void advance()>();
return;
}
public abstract java.lang.Object next();
final void advance()
{
com.google.common.collect.MapMakerInternalMap$Segment[] v;
java.util.concurrent.atomic.AtomicReferenceArray v, v;
com.google.common.collect.MapMakerInternalMap$HashIterator v;
int v, v, v, v, v, v;
boolean v, v, v;
com.google.common.collect.MapMakerInternalMap$Segment v, v, v;
com.google.common.collect.MapMakerInternalMap v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal> = null;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: boolean nextInChain()>();
if v == 0 goto label;
return;
label:
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: boolean nextInTable()>();
if v == 0 goto label;
return;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextSegmentIndex>;
if v < 0 goto label;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap this$0>;
v = v.<com.google.common.collect.MapMakerInternalMap: com.google.common.collect.MapMakerInternalMap$Segment[] segments>;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextSegmentIndex>;
v = v - 1;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextSegmentIndex> = v;
v = v[v];
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$Segment currentSegment> = v;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$Segment currentSegment>;
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: int count>;
if v == 0 goto label;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$Segment currentSegment>;
v = v.<com.google.common.collect.MapMakerInternalMap$Segment: java.util.concurrent.atomic.AtomicReferenceArray table>;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: java.util.concurrent.atomic.AtomicReferenceArray currentTable> = v;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: java.util.concurrent.atomic.AtomicReferenceArray currentTable>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: int length()>();
v = v - 1;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextTableIndex> = v;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: boolean nextInTable()>();
if v == 0 goto label;
return;
label:
return;
}
boolean nextInChain()
{
com.google.common.collect.MapMakerInternalMap$HashIterator v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v, v, v, v, v, v, v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry>;
if v == null goto label;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: com.google.common.collect.MapMakerInternalMap$InternalEntry getNext()>();
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry> = v;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry>;
if v == null goto label;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry>;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: boolean advanceTo(com.google.common.collect.MapMakerInternalMap$InternalEntry)>(v);
if v == 0 goto label;
return 1;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry>;
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: com.google.common.collect.MapMakerInternalMap$InternalEntry getNext()>();
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry> = v;
goto label;
label:
return 0;
}
boolean nextInTable()
{
java.util.concurrent.atomic.AtomicReferenceArray v;
com.google.common.collect.MapMakerInternalMap$HashIterator v;
int v, v, v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
boolean v, v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextTableIndex>;
if v < 0 goto label;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: java.util.concurrent.atomic.AtomicReferenceArray currentTable>;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextTableIndex>;
v = v - 1;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: int nextTableIndex> = v;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: java.lang.Object get(int)>(v);
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry> = v;
if v == null goto label;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry>;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: boolean advanceTo(com.google.common.collect.MapMakerInternalMap$InternalEntry)>(v);
if v != 0 goto label;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: boolean nextInChain()>();
if v == 0 goto label;
label:
return 1;
label:
return 0;
}
boolean advanceTo(com.google.common.collect.MapMakerInternalMap$InternalEntry)
{
java.lang.Throwable v;
com.google.common.collect.MapMakerInternalMap$Segment v, v, v;
com.google.common.collect.MapMakerInternalMap$HashIterator v;
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry v;
java.lang.Object v, v;
com.google.common.collect.MapMakerInternalMap v, v;
com.google.common.collect.MapMakerInternalMap$InternalEntry v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v := @parameter: com.google.common.collect.MapMakerInternalMap$InternalEntry;
label:
v = interfaceinvoke v.<com.google.common.collect.MapMakerInternalMap$InternalEntry: java.lang.Object getKey()>();
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap this$0>;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: java.lang.Object getLiveValue(com.google.common.collect.MapMakerInternalMap$InternalEntry)>(v);
if v == null goto label;
v = new com.google.common.collect.MapMakerInternalMap$WriteThroughEntry;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap this$0>;
specialinvoke v.<com.google.common.collect.MapMakerInternalMap$WriteThroughEntry: void <init>(com.google.common.collect.MapMakerInternalMap,java.lang.Object,java.lang.Object)>(v, v, v);
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal> = v;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$Segment currentSegment>;
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: void postReadCleanup()>();
return 1;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$Segment currentSegment>;
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: void postReadCleanup()>();
return 0;
label:
v := @caughtexception;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$Segment currentSegment>;
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$Segment: void postReadCleanup()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public boolean hasNext()
{
com.google.common.collect.MapMakerInternalMap$HashIterator v;
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry()
{
com.google.common.collect.MapMakerInternalMap$HashIterator v;
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry v, v, v;
java.util.NoSuchElementException v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal>;
if v != null goto label;
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>()>();
throw v;
label:
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal>;
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned> = v;
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$HashIterator: void advance()>();
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned>;
return v;
}
public void remove()
{
com.google.common.collect.MapMakerInternalMap$HashIterator v;
com.google.common.collect.MapMakerInternalMap$WriteThroughEntry v, v;
java.lang.Object v;
com.google.common.collect.MapMakerInternalMap v;
boolean v;
v := @this: com.google.common.collect.MapMakerInternalMap$HashIterator;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.collect.CollectPreconditions: void checkRemove(boolean)>(v);
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap this$0>;
v = v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned>;
v = virtualinvoke v.<com.google.common.collect.MapMakerInternalMap$WriteThroughEntry: java.lang.Object getKey()>();
virtualinvoke v.<com.google.common.collect.MapMakerInternalMap: java.lang.Object remove(java.lang.Object)>(v);
v.<com.google.common.collect.MapMakerInternalMap$HashIterator: com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned> = null;
return;
}
}