abstract class org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator<E> implements java.util.Iterator<E>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator
super_class: java.lang.Object
{
private java.util.List<org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState> todo;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;>;
private org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState currentState;
descriptor: Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
flags: (0x0002) ACC_PRIVATE
private org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry<K, V> next;
descriptor: Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry<TK;TV;>;
private int index;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry<K, V> current;
descriptor: Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry<TK;TV;>;
final org.eclipse.collections.impl.map.mutable.ConcurrentHashMap this$0;
descriptor: Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
protected void <init>(org.eclipse.collections.impl.map.mutable.ConcurrentHashMap);
descriptor: (Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.this$0:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
new org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState
dup
aload 1
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.table:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invokespecial org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.<init>:(Ljava/util/concurrent/atomic/AtomicReferenceArray;)V
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
3: aload 0
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.findNext:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap<TK;TV;>.HashIterator<TE;>;
MethodParameters:
Name Flags
this$0 final
private void findNext();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=1
start local 0 0: goto 25
1: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
astore 1
start local 1 2: aload 1
getstatic org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.RESIZED:Ljava/lang/Object;
if_acmpeq 3
aload 1
getstatic org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.RESIZING:Ljava/lang/Object;
if_acmpne 20
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.this$0:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap;
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.helpWithResizeWhileCurrentIndex:(Ljava/util/concurrent/atomic/AtomicReferenceArray;I)Ljava/util/concurrent/atomic/AtomicReferenceArray;
astore 2
start local 2 4: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
iconst_1
iadd
istore 3
start local 3 5: goto 9
6: StackMap locals: java.util.concurrent.atomic.AtomicReferenceArray int
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
iload 3
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.get:(I)Ljava/lang/Object;
getstatic org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.RESIZED:Ljava/lang/Object;
if_acmpeq 8
7: goto 10
8: StackMap locals:
StackMap stack:
iinc 3 1
9: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.end:I
if_icmplt 6
10: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
ifnonnull 12
11: aload 0
new org.eclipse.collections.impl.list.mutable.FastList
dup
iconst_4
invokespecial org.eclipse.collections.impl.list.mutable.FastList.<init>:(I)V
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
12: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.end:I
if_icmpge 14
13: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
new org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState
dup
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
iload 3
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.end:I
invokespecial org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.<init>:(Ljava/util/concurrent/atomic/AtomicReferenceArray;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
iconst_1
isub
istore 4
start local 4 15: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
new org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState
dup
aload 2
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
iload 4
iadd
iload 3
iload 4
iadd
invokespecial org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.<init>:(Ljava/util/concurrent/atomic/AtomicReferenceArray;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
aload 2
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.currentTable:Ljava/util/concurrent/atomic/AtomicReferenceArray;
17: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
iload 3
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.end:I
18: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.start:I
end local 4 end local 3 end local 2 19: goto 25
20: StackMap locals:
StackMap stack:
aload 1
ifnull 24
21: aload 0
aload 1
checkcast org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.next:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
22: aload 0
dup
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
iconst_1
iadd
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
23: goto 26
24: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
iconst_1
iadd
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
end local 1 25: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.end:I
if_icmplt 1
26: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.next:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
ifnonnull 30
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.end:I
if_icmpne 30
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
ifnull 30
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 30
27: aload 0
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.todo:Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
28: aload 0
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.currentState:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$IteratorState;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState.start:I
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.index:I
29: aload 0
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.findNext:()V
30: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap<TK;TV;>.HashIterator<TE;>;
2 25 1 o Ljava/lang/Object;
4 19 2 nextArray Ljava/util/concurrent/atomic/AtomicReferenceArray;
5 19 3 endResized I
15 19 4 powerTwoLength I
public final boolean hasNext();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.next:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
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 Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap<TK;TV;>.HashIterator<TE;>;
final org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry<K, V> nextEntry();
descriptor: ()Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.next:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
3: StackMap locals: org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry
StackMap stack:
aload 0
aload 1
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry.getNext:()Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
dup_x1
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.next:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
ifnonnull 5
4: aload 0
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.findNext:()V
5: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap<TK;TV;>.HashIterator<TE;>;
1 7 1 e Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry<TK;TV;>;
Signature: ()Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry<TK;TV;>;
protected void removeByKey();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry.key:Ljava/lang/Object;
astore 1
start local 1 3: aload 0
aconst_null
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
4: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.this$0:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap;
aload 1
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap<TK;TV;>.HashIterator<TE;>;
3 6 1 key TK;
protected boolean removeByKeyValue();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry.key:Ljava/lang/Object;
astore 1
start local 1 3: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry.value:Ljava/lang/Object;
astore 2
start local 2 4: aload 0
aconst_null
putfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.current:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap$Entry;
5: aload 0
getfield org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator.this$0:Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap;
aload 1
aload 2
invokevirtual org.eclipse.collections.impl.map.mutable.ConcurrentHashMap.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/collections/impl/map/mutable/ConcurrentHashMap<TK;TV;>.HashIterator<TE;>;
3 6 1 key TK;
4 6 2 val TV;
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Iterator<TE;>;
SourceFile: "ConcurrentHashMap.java"
NestHost: org.eclipse.collections.impl.map.mutable.ConcurrentHashMap
InnerClasses:
private final Entry = org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$Entry of org.eclipse.collections.impl.map.mutable.ConcurrentHashMap
private abstract HashIterator = org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$HashIterator of org.eclipse.collections.impl.map.mutable.ConcurrentHashMap
private final IteratorState = org.eclipse.collections.impl.map.mutable.ConcurrentHashMap$IteratorState of org.eclipse.collections.impl.map.mutable.ConcurrentHashMap