class com.sun.tools.javac.util.GraphUtils$Tarjan<D, N extends com.sun.tools.javac.util.GraphUtils$TarjanNode<D, N>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.util.GraphUtils$Tarjan
super_class: java.lang.Object
{
int index;
descriptor: I
flags: (0x0000)
com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.util.List<N>> sccs;
descriptor: Lcom/sun/tools/javac/util/ListBuffer;
flags: (0x0000)
Signature: Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/util/List<TN;>;>;
com.sun.tools.javac.util.ListBuffer<N> stack;
descriptor: Lcom/sun/tools/javac/util/ListBuffer;
flags: (0x0000)
Signature: Lcom/sun/tools/javac/util/ListBuffer<TN;>;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.sun.tools.javac.util.GraphUtils$Tarjan.index:I
2: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.util.GraphUtils$Tarjan.sccs:Lcom/sun/tools/javac/util/ListBuffer;
3: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.util.GraphUtils$Tarjan.stack:Lcom/sun/tools/javac/util/ListBuffer;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/util/GraphUtils$Tarjan<TD;TN;>;
private com.sun.tools.javac.util.List<? extends com.sun.tools.javac.util.List<? extends N>> findSCC(java.lang.Iterable<? extends N>);
descriptor: (Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: com.sun.tools.javac.util.GraphUtils$Tarjan java.lang.Iterable top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.util.GraphUtils$TarjanNode
astore 2
start local 2 2: aload 2
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.index:I
iconst_m1
if_icmpne 4
3: aload 0
aload 2
invokevirtual com.sun.tools.javac.util.GraphUtils$Tarjan.findSCC:(Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.sccs:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/util/GraphUtils$Tarjan<TD;TN;>;
0 6 1 nodes Ljava/lang/Iterable<+TN;>;
2 4 2 node TN;
Signature: (Ljava/lang/Iterable<+TN;>;)Lcom/sun/tools/javac/util/List<+Lcom/sun/tools/javac/util/List<+TN;>;>;
MethodParameters:
Name Flags
nodes
private void findSCC();
descriptor: (Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.tools.javac.util.GraphUtils$Tarjan.visitNode:(Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
1: aload 1
invokevirtual com.sun.tools.javac.util.GraphUtils$TarjanNode.getAllDependencies:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.sun.tools.javac.util.GraphUtils$Tarjan com.sun.tools.javac.util.GraphUtils$TarjanNode top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.util.GraphUtils$TarjanNode
astore 2
start local 2 3: aload 2
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.index:I
iconst_m1
if_icmpne 7
4: aload 0
aload 2
invokevirtual com.sun.tools.javac.util.GraphUtils$Tarjan.findSCC:(Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
5: aload 1
aload 1
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
aload 2
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
invokestatic java.lang.Math.min:(II)I
putfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
6: goto 9
StackMap locals: com.sun.tools.javac.util.GraphUtils$Tarjan com.sun.tools.javac.util.GraphUtils$TarjanNode com.sun.tools.javac.util.GraphUtils$TarjanNode java.util.Iterator
StackMap stack:
7: aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.stack:Lcom/sun/tools/javac/util/ListBuffer;
aload 2
invokevirtual com.sun.tools.javac.util.ListBuffer.contains:(Ljava/lang/Object;)Z
ifeq 9
8: aload 1
aload 1
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
aload 2
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.index:I
invokestatic java.lang.Math.min:(II)I
putfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
end local 2 9: StackMap locals: com.sun.tools.javac.util.GraphUtils$Tarjan com.sun.tools.javac.util.GraphUtils$TarjanNode top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
10: aload 1
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
aload 1
getfield com.sun.tools.javac.util.GraphUtils$TarjanNode.index:I
if_icmpne 12
11: aload 0
aload 1
invokevirtual com.sun.tools.javac.util.GraphUtils$Tarjan.addSCC:(Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
12: StackMap locals: com.sun.tools.javac.util.GraphUtils$Tarjan com.sun.tools.javac.util.GraphUtils$TarjanNode
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/javac/util/GraphUtils$Tarjan<TD;TN;>;
0 13 1 v TN;
3 9 2 n TN;
Signature: (TN;)V
MethodParameters:
Name Flags
v
private void visitNode();
descriptor: (Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.index:I
putfield com.sun.tools.javac.util.GraphUtils$TarjanNode.index:I
1: aload 1
aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.index:I
putfield com.sun.tools.javac.util.GraphUtils$TarjanNode.lowlink:I
2: aload 0
dup
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.index:I
iconst_1
iadd
putfield com.sun.tools.javac.util.GraphUtils$Tarjan.index:I
3: aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.stack:Lcom/sun/tools/javac/util/ListBuffer;
aload 1
invokevirtual com.sun.tools.javac.util.ListBuffer.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
4: aload 1
iconst_1
putfield com.sun.tools.javac.util.GraphUtils$TarjanNode.active:Z
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/util/GraphUtils$Tarjan<TD;TN;>;
0 6 1 n TN;
Signature: (TN;)V
MethodParameters:
Name Flags
n
private void addSCC();
descriptor: (Lcom/sun/tools/javac/util/GraphUtils$TarjanNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 3
start local 3 1: StackMap locals: com.sun.tools.javac.util.GraphUtils$Tarjan com.sun.tools.javac.util.GraphUtils$TarjanNode top com.sun.tools.javac.util.ListBuffer
StackMap stack:
aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.stack:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.remove:()Ljava/lang/Object;
checkcast com.sun.tools.javac.util.GraphUtils$TarjanNode
astore 2
start local 2 2: aload 2
iconst_0
putfield com.sun.tools.javac.util.GraphUtils$TarjanNode.active:Z
3: aload 3
aload 2
invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
pop
4: aload 2
aload 1
if_acmpne 1
5: aload 0
getfield com.sun.tools.javac.util.GraphUtils$Tarjan.sccs:Lcom/sun/tools/javac/util/ListBuffer;
aload 3
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
pop
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/util/GraphUtils$Tarjan<TD;TN;>;
0 7 1 v TN;
2 7 2 n TN;
1 7 3 cycle Lcom/sun/tools/javac/util/ListBuffer<TN;>;
Signature: (TN;)V
MethodParameters:
Name Flags
v
}
Signature: <D:Ljava/lang/Object;N:Lcom/sun/tools/javac/util/GraphUtils$TarjanNode<TD;TN;>;>Ljava/lang/Object;
SourceFile: "GraphUtils.java"
NestHost: com.sun.tools.javac.util.GraphUtils
InnerClasses:
private Tarjan = com.sun.tools.javac.util.GraphUtils$Tarjan of com.sun.tools.javac.util.GraphUtils
public abstract TarjanNode = com.sun.tools.javac.util.GraphUtils$TarjanNode of com.sun.tools.javac.util.GraphUtils