class freemarker.ext.util.IdentityHashMap$HashIterator implements java.util.Iterator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.ext.util.IdentityHashMap$HashIterator
super_class: java.lang.Object
{
freemarker.ext.util.IdentityHashMap$Entry[] table;
descriptor: [Lfreemarker/ext/util/IdentityHashMap$Entry;
flags: (0x0000)
int index;
descriptor: I
flags: (0x0000)
freemarker.ext.util.IdentityHashMap$Entry entry;
descriptor: Lfreemarker/ext/util/IdentityHashMap$Entry;
flags: (0x0000)
freemarker.ext.util.IdentityHashMap$Entry lastReturned;
descriptor: Lfreemarker/ext/util/IdentityHashMap$Entry;
flags: (0x0000)
int type;
descriptor: I
flags: (0x0000)
private int expectedModCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final freemarker.ext.util.IdentityHashMap this$0;
descriptor: Lfreemarker/ext/util/IdentityHashMap;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(freemarker.ext.util.IdentityHashMap, int);
descriptor: (Lfreemarker/ext/util/IdentityHashMap;I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
getfield freemarker.ext.util.IdentityHashMap.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
putfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
2: aload 0
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
arraylength
putfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
3: aload 0
aconst_null
putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
4: aload 0
aconst_null
putfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
5: aload 0
aload 1
getfield freemarker.ext.util.IdentityHashMap.modCount:I
putfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
6: aload 0
iload 2
putfield freemarker.ext.util.IdentityHashMap$HashIterator.type:I
7: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lfreemarker/ext/util/IdentityHashMap$HashIterator;
0 8 2 type I
MethodParameters:
Name Flags
this$0 final
type
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 1
start local 1 1: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
istore 2
start local 2 2: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 3
start local 3 3: goto 5
4: StackMap locals: freemarker.ext.util.IdentityHashMap$Entry int freemarker.ext.util.IdentityHashMap$Entry[]
StackMap stack:
aload 3
iinc 2 -1
iload 2
aaload
astore 1
5: StackMap locals:
StackMap stack:
aload 1
ifnonnull 6
iload 2
ifgt 4
6: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
7: aload 0
iload 2
putfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
8: aload 1
ifnull 9
iconst_1
ireturn
StackMap locals:
StackMap stack:
9: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lfreemarker/ext/util/IdentityHashMap$HashIterator;
1 10 1 e Lfreemarker/ext/util/IdentityHashMap$Entry;
2 10 2 i I
3 10 3 t [Lfreemarker/ext/util/IdentityHashMap$Entry;
public java.lang.Object next();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
getfield freemarker.ext.util.IdentityHashMap.modCount:I
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
if_icmpeq 2
1: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 1
start local 1 3: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
istore 2
start local 2 4: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 3
start local 3 5: goto 7
6: StackMap locals: freemarker.ext.util.IdentityHashMap$Entry int freemarker.ext.util.IdentityHashMap$Entry[]
StackMap stack:
aload 3
iinc 2 -1
iload 2
aaload
astore 1
7: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
iload 2
ifgt 6
8: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
9: aload 0
iload 2
putfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
10: aload 1
ifnull 17
11: aload 0
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
dup_x1
putfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 4
start local 4 12: aload 0
aload 4
getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
13: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.type:I
ifne 14
aload 4
getfield freemarker.ext.util.IdentityHashMap$Entry.key:Ljava/lang/Object;
goto 16
StackMap locals: freemarker.ext.util.IdentityHashMap$Entry
StackMap stack:
14: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.type:I
iconst_1
if_icmpne 15
aload 4
getfield freemarker.ext.util.IdentityHashMap$Entry.value:Ljava/lang/Object;
goto 16
StackMap locals:
StackMap stack:
15: aload 4
StackMap locals:
StackMap stack: java.lang.Object
16: areturn
end local 4 17: StackMap locals:
StackMap stack:
new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lfreemarker/ext/util/IdentityHashMap$HashIterator;
3 18 1 et Lfreemarker/ext/util/IdentityHashMap$Entry;
4 18 2 i I
5 18 3 t [Lfreemarker/ext/util/IdentityHashMap$Entry;
12 17 4 e Lfreemarker/ext/util/IdentityHashMap$Entry;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
getfield freemarker.ext.util.IdentityHashMap.modCount:I
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
if_icmpeq 4
3: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
getfield freemarker.ext.util.IdentityHashMap.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 1
start local 1 5: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
getfield freemarker.ext.util.IdentityHashMap$Entry.hash:I
ldc 2147483647
iand
aload 1
arraylength
irem
istore 2
start local 2 6: aload 1
iload 2
aaload
astore 3
start local 3 7: aconst_null
astore 4
start local 4 8: goto 19
9: StackMap locals: freemarker.ext.util.IdentityHashMap$HashIterator freemarker.ext.util.IdentityHashMap$Entry[] int freemarker.ext.util.IdentityHashMap$Entry freemarker.ext.util.IdentityHashMap$Entry
StackMap stack:
aload 3
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
if_acmpne 18
10: aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
dup
getfield freemarker.ext.util.IdentityHashMap.modCount:I
iconst_1
iadd
putfield freemarker.ext.util.IdentityHashMap.modCount:I
11: aload 0
dup
getfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
iconst_1
iadd
putfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
12: aload 4
ifnonnull 14
13: aload 1
iload 2
aload 3
getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
aastore
goto 15
14: StackMap locals:
StackMap stack:
aload 4
aload 3
getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
putfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
15: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
dup
getfield freemarker.ext.util.IdentityHashMap.count:I
iconst_1
isub
putfield freemarker.ext.util.IdentityHashMap.count:I
16: aload 0
aconst_null
putfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
17: return
18: StackMap locals:
StackMap stack:
aload 3
astore 4
aload 3
getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
astore 3
19: StackMap locals:
StackMap stack:
aload 3
ifnonnull 9
end local 4 end local 3 20: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lfreemarker/ext/util/IdentityHashMap$HashIterator;
5 21 1 tab [Lfreemarker/ext/util/IdentityHashMap$Entry;
6 21 2 index I
7 20 3 e Lfreemarker/ext/util/IdentityHashMap$Entry;
8 20 4 prev Lfreemarker/ext/util/IdentityHashMap$Entry;
}
SourceFile: "IdentityHashMap.java"
NestHost: freemarker.ext.util.IdentityHashMap
InnerClasses:
private Entry = freemarker.ext.util.IdentityHashMap$Entry of freemarker.ext.util.IdentityHashMap
private HashIterator = freemarker.ext.util.IdentityHashMap$HashIterator of freemarker.ext.util.IdentityHashMap