final class jdk.internal.org.objectweb.asm.tree.analysis.Subroutine
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.org.objectweb.asm.tree.analysis.Subroutine
super_class: java.lang.Object
{
final jdk.internal.org.objectweb.asm.tree.LabelNode start;
descriptor: Ljdk/internal/org/objectweb/asm/tree/LabelNode;
flags: (0x0010) ACC_FINAL
final boolean[] localsUsed;
descriptor: [Z
flags: (0x0010) ACC_FINAL
final java.util.List<jdk.internal.org.objectweb.asm.tree.JumpInsnNode> callers;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<Ljdk/internal/org/objectweb/asm/tree/JumpInsnNode;>;
void <init>(jdk.internal.org.objectweb.asm.tree.LabelNode, int, jdk.internal.org.objectweb.asm.tree.JumpInsnNode);
descriptor: (Ljdk/internal/org/objectweb/asm/tree/LabelNode;ILjdk/internal/org/objectweb/asm/tree/JumpInsnNode;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine this
start local 1 // jdk.internal.org.objectweb.asm.tree.LabelNode start
start local 2 // int maxLocals
start local 3 // jdk.internal.org.objectweb.asm.tree.JumpInsnNode caller
0: .line 92
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 93
aload 0 /* this */
aload 1 /* start */
putfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.start:Ljdk/internal/org/objectweb/asm/tree/LabelNode;
2: .line 94
aload 0 /* this */
iload 2 /* maxLocals */
newarray 4
putfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
3: .line 95
aload 0 /* this */
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
4: .line 96
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
aload 3 /* caller */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: .line 97
return
end local 3 // jdk.internal.org.objectweb.asm.tree.JumpInsnNode caller
end local 2 // int maxLocals
end local 1 // jdk.internal.org.objectweb.asm.tree.LabelNode start
end local 0 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;
0 6 1 start Ljdk/internal/org/objectweb/asm/tree/LabelNode;
0 6 2 maxLocals I
0 6 3 caller Ljdk/internal/org/objectweb/asm/tree/JumpInsnNode;
MethodParameters:
Name Flags
start final
maxLocals final
caller final
void <init>(jdk.internal.org.objectweb.asm.tree.analysis.Subroutine);
descriptor: (Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine this
start local 1 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine subroutine
0: .line 104
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 105
aload 0 /* this */
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.start:Ljdk/internal/org/objectweb/asm/tree/LabelNode;
putfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.start:Ljdk/internal/org/objectweb/asm/tree/LabelNode;
2: .line 106
aload 0 /* this */
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
invokevirtual boolean[].clone:()Ljava/lang/Object;
checkcast boolean[]
putfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
3: .line 107
aload 0 /* this */
new java.util.ArrayList
dup
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
putfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
4: .line 108
return
end local 1 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine subroutine
end local 0 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;
0 5 1 subroutine Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;
MethodParameters:
Name Flags
subroutine final
public boolean merge(jdk.internal.org.objectweb.asm.tree.analysis.Subroutine);
descriptor: (Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine this
start local 1 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine subroutine
0: .line 119
iconst_0
istore 2 /* changed */
start local 2 // boolean changed
1: .line 120
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 7
3: .line 121
StackMap locals: int int
StackMap stack:
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
iload 3 /* i */
baload
ifeq 6
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
iload 3 /* i */
baload
ifne 6
4: .line 122
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
iload 3 /* i */
iconst_1
bastore
5: .line 123
iconst_1
istore 2 /* changed */
6: .line 120
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 3 /* i */
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.localsUsed:[Z
arraylength
if_icmplt 3
end local 3 // int i
8: .line 126
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.start:Ljdk/internal/org/objectweb/asm/tree/LabelNode;
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.start:Ljdk/internal/org/objectweb/asm/tree/LabelNode;
if_acmpne 17
9: .line 127
iconst_0
istore 3 /* i */
start local 3 // int i
10: goto 16
11: .line 128
StackMap locals:
StackMap stack:
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
iload 3 /* i */
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast jdk.internal.org.objectweb.asm.tree.JumpInsnNode
astore 4 /* caller */
start local 4 // jdk.internal.org.objectweb.asm.tree.JumpInsnNode caller
12: .line 129
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
aload 4 /* caller */
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 15
13: .line 130
aload 0 /* this */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
aload 4 /* caller */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: .line 131
iconst_1
istore 2 /* changed */
end local 4 // jdk.internal.org.objectweb.asm.tree.JumpInsnNode caller
15: .line 127
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 3 /* i */
aload 1 /* subroutine */
getfield jdk.internal.org.objectweb.asm.tree.analysis.Subroutine.callers:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 11
end local 3 // int i
17: .line 135
StackMap locals:
StackMap stack:
iload 2 /* changed */
ireturn
end local 2 // boolean changed
end local 1 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine subroutine
end local 0 // jdk.internal.org.objectweb.asm.tree.analysis.Subroutine this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;
0 18 1 subroutine Ljdk/internal/org/objectweb/asm/tree/analysis/Subroutine;
1 18 2 changed Z
2 8 3 i I
10 17 3 i I
12 15 4 caller Ljdk/internal/org/objectweb/asm/tree/JumpInsnNode;
MethodParameters:
Name Flags
subroutine final
}
SourceFile: "Subroutine.java"