public class org.testng.internal.Tarjan<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.testng.internal.Tarjan
super_class: java.lang.Object
{
int m_index;
descriptor: I
flags: (0x0000)
private java.util.Stack<T> m_s;
descriptor: Ljava/util/Stack;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Stack<TT;>;
java.util.Map<T, java.lang.Integer> m_indices;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<TT;Ljava/lang/Integer;>;
java.util.Map<T, java.lang.Integer> m_lowlinks;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<TT;Ljava/lang/Integer;>;
private java.util.List<T> m_cycle;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<TT;>;
public void <init>(org.testng.internal.Graph<T>, );
descriptor: (Lorg/testng/internal/Graph;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.testng.internal.Tarjan.m_index:I
2: aload 0
invokestatic org.testng.collections.Maps.newHashMap:()Ljava/util/Map;
putfield org.testng.internal.Tarjan.m_indices:Ljava/util/Map;
3: aload 0
invokestatic org.testng.collections.Maps.newHashMap:()Ljava/util/Map;
putfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
4: aload 0
new java.util.Stack
dup
invokespecial java.util.Stack.<init>:()V
putfield org.testng.internal.Tarjan.m_s:Ljava/util/Stack;
5: aload 0
aload 1
aload 2
invokevirtual org.testng.internal.Tarjan.run:(Lorg/testng/internal/Graph;Ljava/lang/Object;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/testng/internal/Tarjan<TT;>;
0 7 1 graph Lorg/testng/internal/Graph<TT;>;
0 7 2 start TT;
Signature: (Lorg/testng/internal/Graph<TT;>;TT;)V
MethodParameters:
Name Flags
graph
start
private void run(org.testng.internal.Graph<T>, );
descriptor: (Lorg/testng/internal/Graph;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.testng.internal.Tarjan.m_indices:Ljava/util/Map;
aload 2
aload 0
getfield org.testng.internal.Tarjan.m_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 2
aload 0
getfield org.testng.internal.Tarjan.m_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
dup
getfield org.testng.internal.Tarjan.m_index:I
iconst_1
iadd
putfield org.testng.internal.Tarjan.m_index:I
3: aload 0
getfield org.testng.internal.Tarjan.m_s:Ljava/util/Stack;
aload 2
invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 1
aload 2
invokevirtual org.testng.internal.Graph.getPredecessors:(Ljava/lang/Object;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: org.testng.internal.Tarjan org.testng.internal.Graph java.lang.Object top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 3
start local 3 6: aload 0
getfield org.testng.internal.Tarjan.m_indices:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 11
7: aload 0
aload 1
aload 3
invokevirtual org.testng.internal.Tarjan.run:(Lorg/testng/internal/Graph;Ljava/lang/Object;)V
8: aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 9: aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 2
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 10: goto 13
StackMap locals: org.testng.internal.Tarjan org.testng.internal.Graph java.lang.Object java.lang.Object java.util.Iterator
StackMap stack:
11: aload 0
getfield org.testng.internal.Tarjan.m_s:Ljava/util/Stack;
aload 3
invokevirtual java.util.Stack.contains:(Ljava/lang/Object;)Z
ifeq 13
12: aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 2
aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield org.testng.internal.Tarjan.m_indices:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 13: StackMap locals: org.testng.internal.Tarjan org.testng.internal.Graph java.lang.Object top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
14: aload 0
getfield org.testng.internal.Tarjan.m_lowlinks:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield org.testng.internal.Tarjan.m_indices:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 19
15: aload 0
invokestatic org.testng.collections.Lists.newArrayList:()Ljava/util/List;
putfield org.testng.internal.Tarjan.m_cycle:Ljava/util/List;
16: StackMap locals: org.testng.internal.Tarjan org.testng.internal.Graph java.lang.Object
StackMap stack:
aload 0
getfield org.testng.internal.Tarjan.m_s:Ljava/util/Stack;
invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
astore 3
start local 3 17: aload 0
getfield org.testng.internal.Tarjan.m_cycle:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: aload 3
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 16
end local 3 19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/testng/internal/Tarjan<TT;>;
0 20 1 graph Lorg/testng/internal/Graph<TT;>;
0 20 2 v TT;
6 13 3 vprime TT;
9 10 5 min I
17 19 3 n TT;
Signature: (Lorg/testng/internal/Graph<TT;>;TT;)V
MethodParameters:
Name Flags
graph
v
public java.util.List<T> getCycle();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.testng.internal.Tarjan.m_cycle:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/testng/internal/Tarjan<TT;>;
Signature: ()Ljava/util/List<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Tarjan.java"