class java.util.concurrent.ConcurrentHashMap$Traverser<K, V>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.concurrent.ConcurrentHashMap$Traverser
super_class: java.lang.Object
{
java.util.concurrent.ConcurrentHashMap$Node<K, V>[] tab;
descriptor: [Ljava/util/concurrent/ConcurrentHashMap$Node;
flags: (0x0000)
Signature: [Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
java.util.concurrent.ConcurrentHashMap$Node<K, V> next;
descriptor: Ljava/util/concurrent/ConcurrentHashMap$Node;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
java.util.concurrent.ConcurrentHashMap$TableStack<K, V> stack;
descriptor: Ljava/util/concurrent/ConcurrentHashMap$TableStack;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
java.util.concurrent.ConcurrentHashMap$TableStack<K, V> spare;
descriptor: Ljava/util/concurrent/ConcurrentHashMap$TableStack;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
int index;
descriptor: I
flags: (0x0000)
int baseIndex;
descriptor: I
flags: (0x0000)
int baseLimit;
descriptor: I
flags: (0x0000)
final int baseSize;
descriptor: I
flags: (0x0010) ACC_FINAL
void <init>(java.util.concurrent.ConcurrentHashMap$Node<K, V>[], int, int, );
descriptor: ([Ljava/util/concurrent/ConcurrentHashMap$Node;III)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
2: aload 0
iload 2
putfield java.util.concurrent.ConcurrentHashMap$Traverser.baseSize:I
3: aload 0
aload 0
iload 3
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
putfield java.util.concurrent.ConcurrentHashMap$Traverser.baseIndex:I
4: aload 0
iload 4
putfield java.util.concurrent.ConcurrentHashMap$Traverser.baseLimit:I
5: aload 0
aconst_null
putfield java.util.concurrent.ConcurrentHashMap$Traverser.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/ConcurrentHashMap$Traverser<TK;TV;>;
0 7 1 tab [Ljava/util/concurrent/ConcurrentHashMap$Node;
0 7 2 size I
0 7 3 index I
0 7 4 limit I
Signature: ([Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;III)V
MethodParameters:
Name Flags
tab
size
index
limit
final java.util.concurrent.ConcurrentHashMap$Node<K, V> advance();
descriptor: ()Ljava/util/concurrent/ConcurrentHashMap$Node;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
dup
astore 1
start local 1 1: ifnull 3
2: aload 1
getfield java.util.concurrent.ConcurrentHashMap$Node.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
astore 1
3: StackMap locals: java.util.concurrent.ConcurrentHashMap$Node
StackMap stack:
aload 1
ifnull 5
4: aload 0
aload 1
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.baseIndex:I
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.baseLimit:I
if_icmpge 10
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
dup
astore 2
start local 2 6: ifnull 10
7: aload 2
arraylength
dup
istore 4
start local 4 8: aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
dup
istore 3
start local 3 9: if_icmple 10
iload 3
ifge 11
end local 4 end local 3 end local 2 10: StackMap locals:
StackMap stack:
aload 0
aconst_null
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
areturn
start local 2 start local 3 start local 4 11: StackMap locals: java.util.concurrent.ConcurrentHashMap$Node[] int int
StackMap stack:
aload 2
iload 3
invokestatic java.util.concurrent.ConcurrentHashMap.tabAt:([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
dup
astore 1
ifnull 20
aload 1
getfield java.util.concurrent.ConcurrentHashMap$Node.hash:I
ifge 20
12: aload 1
instanceof java.util.concurrent.ConcurrentHashMap$ForwardingNode
ifeq 17
13: aload 0
aload 1
checkcast java.util.concurrent.ConcurrentHashMap$ForwardingNode
getfield java.util.concurrent.ConcurrentHashMap$ForwardingNode.nextTable:[Ljava/util/concurrent/ConcurrentHashMap$Node;
putfield java.util.concurrent.ConcurrentHashMap$Traverser.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
14: aconst_null
astore 1
15: aload 0
aload 2
iload 3
iload 4
invokevirtual java.util.concurrent.ConcurrentHashMap$Traverser.pushState:([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
16: goto 3
17: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.concurrent.ConcurrentHashMap$TreeBin
ifeq 19
18: aload 1
checkcast java.util.concurrent.ConcurrentHashMap$TreeBin
getfield java.util.concurrent.ConcurrentHashMap$TreeBin.first:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
astore 1
goto 20
19: StackMap locals:
StackMap stack:
aconst_null
astore 1
20: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
ifnull 22
21: aload 0
iload 4
invokevirtual java.util.concurrent.ConcurrentHashMap$Traverser.recoverState:(I)V
goto 3
22: StackMap locals:
StackMap stack:
aload 0
iload 3
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.baseSize:I
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
iload 4
if_icmplt 3
23: aload 0
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$Traverser.baseIndex:I
iconst_1
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.baseIndex:I
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
end local 4 end local 3 end local 2 24: goto 3
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/concurrent/ConcurrentHashMap$Traverser<TK;TV;>;
1 25 1 e Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
6 10 2 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
11 24 2 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
9 10 3 i I
11 24 3 i I
8 10 4 n I
11 24 4 n I
Signature: ()Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
private void pushState(java.util.concurrent.ConcurrentHashMap$Node<K, V>[], int, );
descriptor: ([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 0
aload 4
getfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
putfield java.util.concurrent.ConcurrentHashMap$Traverser.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
goto 4
3: StackMap locals: java.util.concurrent.ConcurrentHashMap$TableStack
StackMap stack:
new java.util.concurrent.ConcurrentHashMap$TableStack
dup
invokespecial java.util.concurrent.ConcurrentHashMap$TableStack.<init>:()V
astore 4
4: StackMap locals:
StackMap stack:
aload 4
aload 1
putfield java.util.concurrent.ConcurrentHashMap$TableStack.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
5: aload 4
iload 3
putfield java.util.concurrent.ConcurrentHashMap$TableStack.length:I
6: aload 4
iload 2
putfield java.util.concurrent.ConcurrentHashMap$TableStack.index:I
7: aload 4
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
putfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
8: aload 0
aload 4
putfield java.util.concurrent.ConcurrentHashMap$Traverser.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ConcurrentHashMap$Traverser<TK;TV;>;
0 10 1 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
0 10 2 i I
0 10 3 n I
1 10 4 s Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
Signature: ([Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;II)V
MethodParameters:
Name Flags
t
i
n
private void recoverState(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: goto 9
start local 2 start local 3 1: StackMap locals: java.util.concurrent.ConcurrentHashMap$TableStack int
StackMap stack:
iload 3
istore 1
2: aload 0
aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.index:I
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
3: aload 0
aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
putfield java.util.concurrent.ConcurrentHashMap$Traverser.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
4: aload 2
aconst_null
putfield java.util.concurrent.ConcurrentHashMap$TableStack.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
5: aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
astore 4
start local 4 6: aload 2
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
putfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
7: aload 0
aload 4
putfield java.util.concurrent.ConcurrentHashMap$Traverser.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
8: aload 0
aload 2
putfield java.util.concurrent.ConcurrentHashMap$Traverser.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
end local 4 end local 3 end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
dup
astore 2
start local 2 10: ifnull 12
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.length:I
dup
istore 3
start local 3 11: iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
iload 1
if_icmpge 1
end local 3 12: StackMap locals: java.util.concurrent.ConcurrentHashMap$TableStack
StackMap stack:
aload 2
ifnonnull 14
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
aload 0
getfield java.util.concurrent.ConcurrentHashMap$Traverser.baseSize:I
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
iload 1
if_icmplt 14
13: aload 0
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$Traverser.baseIndex:I
iconst_1
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$Traverser.baseIndex:I
putfield java.util.concurrent.ConcurrentHashMap$Traverser.index:I
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/concurrent/ConcurrentHashMap$Traverser<TK;TV;>;
0 15 1 n I
1 9 2 s Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
10 15 2 s Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
1 9 3 len I
11 12 3 len I
6 9 4 next Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
MethodParameters:
Name Flags
n
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ConcurrentHashMap.java"
NestHost: java.util.concurrent.ConcurrentHashMap
InnerClasses:
final ForwardingNode = java.util.concurrent.ConcurrentHashMap$ForwardingNode of java.util.concurrent.ConcurrentHashMap
Node = java.util.concurrent.ConcurrentHashMap$Node of java.util.concurrent.ConcurrentHashMap
final TableStack = java.util.concurrent.ConcurrentHashMap$TableStack of java.util.concurrent.ConcurrentHashMap
Traverser = java.util.concurrent.ConcurrentHashMap$Traverser of java.util.concurrent.ConcurrentHashMap
final TreeBin = java.util.concurrent.ConcurrentHashMap$TreeBin of java.util.concurrent.ConcurrentHashMap