Package org.objectweb.asm.tree.analysis
Class Subroutine
java.lang.Object
org.objectweb.asm.tree.analysis.Subroutine
A method subroutine (corresponds to a JSR instruction).
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final List
<JumpInsnNode> The JSR instructions that jump to this subroutine.(package private) final boolean[]
The local variables that are read or written by this subroutine.(package private) final LabelNode
The start of this subroutine. -
Constructor Summary
ConstructorsConstructorDescriptionSubroutine
(Subroutine subroutine) Constructs a copy of the givenSubroutine
.Subroutine
(LabelNode start, int maxLocals, JumpInsnNode caller) Constructs a newSubroutine
. -
Method Summary
Modifier and TypeMethodDescriptionboolean
merge
(Subroutine subroutine) Merges the given subroutine into this subroutine.
-
Field Details
-
start
The start of this subroutine. -
localsUsed
final boolean[] localsUsedThe local variables that are read or written by this subroutine. The i-th element is true if and only if the local variable at index i is read or written by this subroutine. -
callers
The JSR instructions that jump to this subroutine.
-
-
Constructor Details
-
Subroutine
Subroutine(LabelNode start, int maxLocals, JumpInsnNode caller) Constructs a newSubroutine
.- Parameters:
start
- the start of this subroutine.maxLocals
- the local variables that are read or written by this subroutine.caller
- a JSR instruction that jump to this subroutine.
-
Subroutine
Subroutine(Subroutine subroutine) Constructs a copy of the givenSubroutine
.- Parameters:
subroutine
- the subroutine to copy.
-
-
Method Details
-
merge
Merges the given subroutine into this subroutine. The local variables read or written by the given subroutine are marked as read or written by this one, and the callers of the given subroutine are added as callers of this one (if both have the same start).- Parameters:
subroutine
- another subroutine. This subroutine is left unchanged by this method.- Returns:
- whether this subroutine has been modified by this method.
-