abstract class com.google.common.collect.MapMakerInternalMap$HashIterator<T> implements java.util.Iterator<T>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.google.common.collect.MapMakerInternalMap$HashIterator
super_class: java.lang.Object
{
int nextSegmentIndex;
descriptor: I
flags: (0x0000)
int nextTableIndex;
descriptor: I
flags: (0x0000)
com.google.common.collect.MapMakerInternalMap$Segment<K, V, E, S> currentSegment;
descriptor: Lcom/google/common/collect/MapMakerInternalMap$Segment;
flags: (0x0000)
Signature: Lcom/google/common/collect/MapMakerInternalMap$Segment<TK;TV;TE;TS;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.MonotonicNonNull()
java.util.concurrent.atomic.AtomicReferenceArray<E> currentTable;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceArray;
flags: (0x0000)
Signature: Ljava/util/concurrent/atomic/AtomicReferenceArray<TE;>;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.MonotonicNonNull()
E nextEntry;
descriptor: Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
flags: (0x0000)
Signature: TE;
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
com.google.common.collect.MapMakerInternalMap<K, V, E, S>.WriteThroughEntry nextExternal;
descriptor: Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
flags: (0x0000)
Signature: Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.WriteThroughEntry;
RuntimeVisibleTypeAnnotations:
FIELD, location=[INNER_TYPE]
org.checkerframework.checker.nullness.qual.Nullable()
com.google.common.collect.MapMakerInternalMap<K, V, E, S>.WriteThroughEntry lastReturned;
descriptor: Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
flags: (0x0000)
Signature: Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.WriteThroughEntry;
RuntimeVisibleTypeAnnotations:
FIELD, location=[INNER_TYPE]
org.checkerframework.checker.nullness.qual.Nullable()
final com.google.common.collect.MapMakerInternalMap this$0;
descriptor: Lcom/google/common/collect/MapMakerInternalMap;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.google.common.collect.MapMakerInternalMap);
descriptor: (Lcom/google/common/collect/MapMakerInternalMap;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
getfield com.google.common.collect.MapMakerInternalMap.segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
arraylength
iconst_1
isub
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
2: aload 0
iconst_m1
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
3: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advance:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
MethodParameters:
Name Flags
this$0 final
public abstract T next();
descriptor: ()Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: ()TT;
final void advance();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
1: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInChain:()Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInTable:()Z
ifeq 11
4: return
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
getfield com.google.common.collect.MapMakerInternalMap.segments:[Lcom/google/common/collect/MapMakerInternalMap$Segment;
aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
dup_x1
iconst_1
isub
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
aaload
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
6: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
getfield com.google.common.collect.MapMakerInternalMap$Segment.count:I
ifeq 11
7: aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
getfield com.google.common.collect.MapMakerInternalMap$Segment.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
8: aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
9: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInTable:()Z
ifeq 11
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextSegmentIndex:I
ifge 5
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
boolean nextInChain();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
ifnull 6
1: aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
goto 5
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advanceTo:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getNext:()Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
StackMap locals:
StackMap stack:
5: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
ifnonnull 2
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
boolean nextInTable();
descriptor: ()Z
flags: (0x0000)
Code:
stack=6, locals=1, args_size=1
start local 0 0: goto 4
1: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
aload 0
dup
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
dup_x1
iconst_1
isub
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
checkcast com.google.common.collect.MapMakerInternalMap$InternalEntry
dup_x1
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
ifnull 4
2: aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextEntry:Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advanceTo:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
ifne 3
aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.nextInChain:()Z
ifeq 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextTableIndex:I
ifge 1
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
boolean advanceTo();
descriptor: (Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Z
flags: (0x0000)
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.google.common.collect.MapMakerInternalMap$InternalEntry.getKey:()Ljava/lang/Object;
astore 2
start local 2 1: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
aload 1
invokevirtual com.google.common.collect.MapMakerInternalMap.getLiveValue:(Lcom/google/common/collect/MapMakerInternalMap$InternalEntry;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnull 6
3: aload 0
new com.google.common.collect.MapMakerInternalMap$WriteThroughEntry
dup
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
aload 2
aload 3
invokespecial com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.<init>:(Lcom/google/common/collect/MapMakerInternalMap;Ljava/lang/Object;Ljava/lang/Object;)V
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
4: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
5: iconst_1
ireturn
6: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
7: iconst_0
ireturn
end local 3 end local 2 8: StackMap locals: com.google.common.collect.MapMakerInternalMap$HashIterator com.google.common.collect.MapMakerInternalMap$InternalEntry
StackMap stack: java.lang.Throwable
astore 4
9: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.currentSegment:Lcom/google/common/collect/MapMakerInternalMap$Segment;
invokevirtual com.google.common.collect.MapMakerInternalMap$Segment.postReadCleanup:()V
10: aload 4
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
0 11 1 entry TE;
1 8 2 key TK;
2 8 3 value TV;
Exception table:
from to target type
0 4 8 any
Signature: (TE;)Z
MethodParameters:
Name Flags
entry
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
com.google.common.collect.MapMakerInternalMap<K, V, E, S>.WriteThroughEntry nextEntry();
descriptor: ()Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
ifnonnull 2
1: new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.nextExternal:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
3: aload 0
invokevirtual com.google.common.collect.MapMakerInternalMap$HashIterator.advance:()V
4: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
Signature: ()Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.WriteThroughEntry;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: invokestatic com.google.common.collect.CollectPreconditions.checkRemove:(Z)V
3: aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.this$0:Lcom/google/common/collect/MapMakerInternalMap;
aload 0
getfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
invokevirtual com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey:()Ljava/lang/Object;
invokevirtual com.google.common.collect.MapMakerInternalMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
aconst_null
putfield com.google.common.collect.MapMakerInternalMap$HashIterator.lastReturned:Lcom/google/common/collect/MapMakerInternalMap$WriteThroughEntry;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/MapMakerInternalMap<TK;TV;TE;TS;>.HashIterator<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Iterator<TT;>;
SourceFile: "MapMakerInternalMap.java"
NestHost: com.google.common.collect.MapMakerInternalMap
InnerClasses:
abstract HashIterator = com.google.common.collect.MapMakerInternalMap$HashIterator of com.google.common.collect.MapMakerInternalMap
abstract InternalEntry = com.google.common.collect.MapMakerInternalMap$InternalEntry of com.google.common.collect.MapMakerInternalMap
abstract Segment = com.google.common.collect.MapMakerInternalMap$Segment of com.google.common.collect.MapMakerInternalMap
final WriteThroughEntry = com.google.common.collect.MapMakerInternalMap$WriteThroughEntry of com.google.common.collect.MapMakerInternalMap