class java.util.Hashtable$Enumerator<T> implements java.util.Enumeration<T>, java.util.Iterator<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.Hashtable$Enumerator
super_class: java.lang.Object
{
java.util.Hashtable$Entry<?, ?>[] table;
descriptor: [Ljava/util/Hashtable$Entry;
flags: (0x0000)
Signature: [Ljava/util/Hashtable$Entry<**>;
int index;
descriptor: I
flags: (0x0000)
java.util.Hashtable$Entry<?, ?> entry;
descriptor: Ljava/util/Hashtable$Entry;
flags: (0x0000)
Signature: Ljava/util/Hashtable$Entry<**>;
java.util.Hashtable$Entry<?, ?> lastReturned;
descriptor: Ljava/util/Hashtable$Entry;
flags: (0x0000)
Signature: Ljava/util/Hashtable$Entry<**>;
int type;
descriptor: I
flags: (0x0000)
boolean iterator;
descriptor: Z
flags: (0x0000)
protected int expectedModCount;
descriptor: I
flags: (0x0004) ACC_PROTECTED
final java.util.Hashtable this$0;
descriptor: Ljava/util/Hashtable;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(java.util.Hashtable, int, boolean);
descriptor: (Ljava/util/Hashtable;IZ)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
getfield java.util.Hashtable.table:[Ljava/util/Hashtable$Entry;
putfield java.util.Hashtable$Enumerator.table:[Ljava/util/Hashtable$Entry;
2: aload 0
aload 0
getfield java.util.Hashtable$Enumerator.table:[Ljava/util/Hashtable$Entry;
arraylength
putfield java.util.Hashtable$Enumerator.index:I
3: aload 0
aload 1
getfield java.util.Hashtable.modCount:I
putfield java.util.Hashtable$Enumerator.expectedModCount:I
4: aload 0
iload 2
putfield java.util.Hashtable$Enumerator.type:I
5: aload 0
iload 3
putfield java.util.Hashtable$Enumerator.iterator:Z
6: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/Hashtable<TK;TV;>.Enumerator<TT;>;
0 7 2 type I
0 7 3 iterator Z
MethodParameters:
Name Flags
this$0 final
type
iterator
public boolean hasMoreElements();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield java.util.Hashtable$Enumerator.entry:Ljava/util/Hashtable$Entry;
astore 1
start local 1 1: aload 0
getfield java.util.Hashtable$Enumerator.index:I
istore 2
start local 2 2: aload 0
getfield java.util.Hashtable$Enumerator.table:[Ljava/util/Hashtable$Entry;
astore 3
start local 3 3: goto 5
4: StackMap locals: java.util.Hashtable$Entry int java.util.Hashtable$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 java.util.Hashtable$Enumerator.entry:Ljava/util/Hashtable$Entry;
7: aload 0
iload 2
putfield java.util.Hashtable$Enumerator.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 Ljava/util/Hashtable<TK;TV;>.Enumerator<TT;>;
1 10 1 e Ljava/util/Hashtable$Entry<**>;
2 10 2 i I
3 10 3 t [Ljava/util/Hashtable$Entry;
public T nextElement();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.Hashtable$Enumerator.entry:Ljava/util/Hashtable$Entry;
astore 1
start local 1 1: aload 0
getfield java.util.Hashtable$Enumerator.index:I
istore 2
start local 2 2: aload 0
getfield java.util.Hashtable$Enumerator.table:[Ljava/util/Hashtable$Entry;
astore 3
start local 3 3: goto 5
4: StackMap locals: java.util.Hashtable$Entry int java.util.Hashtable$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 java.util.Hashtable$Enumerator.entry:Ljava/util/Hashtable$Entry;
7: aload 0
iload 2
putfield java.util.Hashtable$Enumerator.index:I
8: aload 1
ifnull 15
9: aload 0
aload 0
getfield java.util.Hashtable$Enumerator.entry:Ljava/util/Hashtable$Entry;
dup_x1
putfield java.util.Hashtable$Enumerator.lastReturned:Ljava/util/Hashtable$Entry;
astore 4
start local 4 10: aload 0
aload 4
getfield java.util.Hashtable$Entry.next:Ljava/util/Hashtable$Entry;
putfield java.util.Hashtable$Enumerator.entry:Ljava/util/Hashtable$Entry;
11: aload 0
getfield java.util.Hashtable$Enumerator.type:I
ifne 12
aload 4
getfield java.util.Hashtable$Entry.key:Ljava/lang/Object;
goto 14
StackMap locals: java.util.Hashtable$Entry
StackMap stack:
12: aload 0
getfield java.util.Hashtable$Enumerator.type:I
iconst_1
if_icmpne 13
aload 4
getfield java.util.Hashtable$Entry.value:Ljava/lang/Object;
goto 14
StackMap locals:
StackMap stack:
13: aload 4
StackMap locals:
StackMap stack: java.lang.Object
14: areturn
end local 4 15: StackMap locals:
StackMap stack:
new java.util.NoSuchElementException
dup
ldc "Hashtable Enumerator"
invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/util/Hashtable<TK;TV;>.Enumerator<TT;>;
1 16 1 et Ljava/util/Hashtable$Entry<**>;
2 16 2 i I
3 16 3 t [Ljava/util/Hashtable$Entry;
10 15 4 e Ljava/util/Hashtable$Entry<**>;
Signature: ()TT;
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.Hashtable$Enumerator.hasMoreElements:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/Hashtable<TK;TV;>.Enumerator<TT;>;
public T next();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
getfield java.util.Hashtable.modCount:I
aload 0
getfield java.util.Hashtable$Enumerator.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
invokevirtual java.util.Hashtable$Enumerator.nextElement:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/Hashtable<TK;TV;>.Enumerator<TT;>;
Signature: ()TT;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield java.util.Hashtable$Enumerator.iterator:Z
ifne 2
1: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Hashtable$Enumerator.lastReturned:Ljava/util/Hashtable$Entry;
ifnonnull 4
3: new java.lang.IllegalStateException
dup
ldc "Hashtable Enumerator"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
getfield java.util.Hashtable.modCount:I
aload 0
getfield java.util.Hashtable$Enumerator.expectedModCount:I
if_icmpeq 6
5: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
dup
astore 1
monitorenter
7: aload 0
getfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
getfield java.util.Hashtable.table:[Ljava/util/Hashtable$Entry;
astore 2
start local 2 8: aload 0
getfield java.util.Hashtable$Enumerator.lastReturned:Ljava/util/Hashtable$Entry;
getfield java.util.Hashtable$Entry.hash:I
ldc 2147483647
iand
aload 2
arraylength
irem
istore 3
start local 3 9: aload 2
iload 3
aaload
astore 4
start local 4 10: aconst_null
astore 5
start local 5 11: goto 23
12: StackMap locals: java.util.Hashtable$Enumerator java.util.Hashtable java.util.Hashtable$Entry[] int java.util.Hashtable$Entry java.util.Hashtable$Entry
StackMap stack:
aload 4
aload 0
getfield java.util.Hashtable$Enumerator.lastReturned:Ljava/util/Hashtable$Entry;
if_acmpne 22
13: aload 0
getfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
dup
getfield java.util.Hashtable.modCount:I
iconst_1
iadd
putfield java.util.Hashtable.modCount:I
14: aload 0
dup
getfield java.util.Hashtable$Enumerator.expectedModCount:I
iconst_1
iadd
putfield java.util.Hashtable$Enumerator.expectedModCount:I
15: aload 5
ifnonnull 17
16: aload 2
iload 3
aload 4
getfield java.util.Hashtable$Entry.next:Ljava/util/Hashtable$Entry;
aastore
goto 18
17: StackMap locals:
StackMap stack:
aload 5
aload 4
getfield java.util.Hashtable$Entry.next:Ljava/util/Hashtable$Entry;
putfield java.util.Hashtable$Entry.next:Ljava/util/Hashtable$Entry;
18: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Hashtable$Enumerator.this$0:Ljava/util/Hashtable;
dup
getfield java.util.Hashtable.count:I
iconst_1
isub
putfield java.util.Hashtable.count:I
19: aload 0
aconst_null
putfield java.util.Hashtable$Enumerator.lastReturned:Ljava/util/Hashtable$Entry;
20: aload 1
monitorexit
21: return
22: StackMap locals:
StackMap stack:
aload 4
astore 5
aload 4
getfield java.util.Hashtable$Entry.next:Ljava/util/Hashtable$Entry;
astore 4
StackMap locals:
StackMap stack:
23: aload 4
ifnonnull 12
end local 5 24: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
end local 4 end local 3 end local 2 25: StackMap locals: java.util.Hashtable$Enumerator java.util.Hashtable
StackMap stack: java.lang.Throwable
aload 1
monitorexit
26: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/util/Hashtable<TK;TV;>.Enumerator<TT;>;
8 25 2 tab [Ljava/util/Hashtable$Entry;
9 25 3 index I
10 25 4 e Ljava/util/Hashtable$Entry<TK;TV;>;
11 24 5 prev Ljava/util/Hashtable$Entry<TK;TV;>;
Exception table:
from to target type
7 21 25 any
22 26 25 any
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Enumeration<TT;>;Ljava/util/Iterator<TT;>;
SourceFile: "Hashtable.java"
NestHost: java.util.Hashtable
InnerClasses:
private Entry = java.util.Hashtable$Entry of java.util.Hashtable
private Enumerator = java.util.Hashtable$Enumerator of java.util.Hashtable