class java.util.concurrent.ConcurrentLinkedQueue$Itr implements java.util.Iterator<E>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.concurrent.ConcurrentLinkedQueue$Itr
super_class: java.lang.Object
{
private java.util.concurrent.ConcurrentLinkedQueue$Node<E> nextNode;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
private E nextItem;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Signature: TE;
private java.util.concurrent.ConcurrentLinkedQueue$Node<E> lastRet;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
final java.util.concurrent.ConcurrentLinkedQueue this$0;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(java.util.concurrent.ConcurrentLinkedQueue);
descriptor: (Ljava/util/concurrent/ConcurrentLinkedQueue;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.this$0:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Itr.advance:()Ljava/lang/Object;
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;
MethodParameters:
Name Flags
this$0 final
private E advance();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.lastRet:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
1: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextItem:Ljava/lang/Object;
astore 1
start local 1 2: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
ifnonnull 6
3: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.this$0:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.first:()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 3
start local 3 4: aconst_null
astore 2
start local 2 5: goto 8
end local 3 end local 2 6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 2
start local 2 7: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.this$0:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 3
start local 3 8: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 3
ifnonnull 12
9: aload 0
aconst_null
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
10: aload 0
aconst_null
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextItem:Ljava/lang/Object;
11: aload 1
areturn
12: StackMap locals:
StackMap stack:
aload 3
getfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
astore 4
start local 4 13: aload 4
ifnull 17
14: aload 0
aload 3
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
15: aload 0
aload 4
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextItem:Ljava/lang/Object;
16: aload 1
areturn
17: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.this$0:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 3
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.succ:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 5
start local 5 18: aload 2
ifnull 20
aload 5
ifnull 20
19: aload 2
aload 3
aload 5
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Node.casNext:(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
pop
20: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 5
astore 3
end local 5 end local 4 21: goto 8
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;
2 22 1 x TE;
5 6 2 pred Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
7 22 2 pred Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
4 6 3 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
8 22 3 p Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
13 21 4 item TE;
18 21 5 next Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
Signature: ()TE;
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
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 Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;
public E 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.concurrent.ConcurrentLinkedQueue$Itr.nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
ifnonnull 1
new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ConcurrentLinkedQueue$Itr.advance:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;
Signature: ()TE;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ConcurrentLinkedQueue$Itr.lastRet:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
astore 1
start local 1 1: aload 1
ifnonnull 2
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals: java.util.concurrent.ConcurrentLinkedQueue$Node
StackMap stack:
aload 1
aconst_null
putfield java.util.concurrent.ConcurrentLinkedQueue$Node.item:Ljava/lang/Object;
3: aload 0
aconst_null
putfield java.util.concurrent.ConcurrentLinkedQueue$Itr.lastRet:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;
1 5 1 l Ljava/util/concurrent/ConcurrentLinkedQueue$Node<TE;>;
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<TE;>;
SourceFile: "ConcurrentLinkedQueue.java"
NestHost: java.util.concurrent.ConcurrentLinkedQueue
InnerClasses:
private Itr = java.util.concurrent.ConcurrentLinkedQueue$Itr of java.util.concurrent.ConcurrentLinkedQueue
private Node = java.util.concurrent.ConcurrentLinkedQueue$Node of java.util.concurrent.ConcurrentLinkedQueue