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