org.apache.bcel.verifier.structurals
Interface Subroutine
public interface Subroutine
This interface defines properties of JVM bytecode subroutines.
Note that it is 'abused' to maintain the top-level code in a
consistent fashion, too.
$Id: Subroutine.java,v 1.1.1.1 2001/10/29 20:00:42 jvanzyl Exp $ boolean | contains(InstructionHandle inst) - Returns if the given InstructionHandle refers to an instruction
that is part of this subroutine.
|
int[] | getAccessedLocalsIndices() - Returns an int[] containing the indices of the local variable slots
accessed by this Subroutine (read-accessed, write-accessed or both);
local variables referenced by subroutines of this subroutine are
not included.
|
InstructionHandle[] | getEnteringJsrInstructions() - Returns all the JsrInstructions that have the
first instruction of this subroutine as their target.
|
InstructionHandle[] | getInstructions() - Returns all instructions that together form this subroutine.
|
InstructionHandle | getLeavingRET() - Returns the one and only RET that leaves the subroutine.
|
int[] | getRecursivelyAccessedLocalsIndices() - Returns an int[] containing the indices of the local variable slots
accessed by this Subroutine (read-accessed, write-accessed or both);
local variables referenced by subroutines of this subroutine are
included.
|
Subroutine[] | subSubs() - Returns the subroutines that are directly called from this subroutine.
|
contains
public boolean contains(InstructionHandle inst)
Returns if the given InstructionHandle refers to an instruction
that is part of this subroutine. This is a convenience method
that saves iteration over the InstructionHandle objects returned
by getInstructions().
getAccessedLocalsIndices
public int[] getAccessedLocalsIndices()
Returns an int[] containing the indices of the local variable slots
accessed by this Subroutine (read-accessed, write-accessed or both);
local variables referenced by subroutines of this subroutine are
not included.
getEnteringJsrInstructions
public InstructionHandle[] getEnteringJsrInstructions()
Returns all the JsrInstructions that have the
first instruction of this subroutine as their target.
Must not be invoked on the 'top-level subroutine'.
getInstructions
public InstructionHandle[] getInstructions()
Returns all instructions that together form this subroutine.
Note that an instruction is part of exactly one subroutine
(the top-level code is considered to be a special subroutine) -
else it is not reachable at all (dead code).
getLeavingRET
public InstructionHandle getLeavingRET()
Returns the one and only RET that leaves the subroutine.
Note that JustIce has a pretty rigid notion of a subroutine.
Must not be invoked on the 'top-level subroutine'.
getRecursivelyAccessedLocalsIndices
public int[] getRecursivelyAccessedLocalsIndices()
Returns an int[] containing the indices of the local variable slots
accessed by this Subroutine (read-accessed, write-accessed or both);
local variables referenced by subroutines of this subroutine are
included.
subSubs
public Subroutine[] subSubs()
Returns the subroutines that are directly called from this subroutine.