org.apache.bcel.verifier.structurals
Class Subroutines.SubroutineImpl
java.lang.Object
org.apache.bcel.verifier.structurals.Subroutines.SubroutineImpl
- Subroutines
- Subroutine
private class Subroutines.SubroutineImpl
extends java.lang.Object
This inner class implements the Subroutine interface.
private static int | UNSET - UNSET, a symbol for an uninitialized localVariable
field.
|
private Set | instructions - The instructions that belong to this subroutine.
|
private int | localVariable - The Local Variable slot where the first
instruction of this subroutine (an ASTORE) stores
the JsrInstruction's ReturnAddress in and
the RET of this subroutine operates on.
|
private Set | theJSRs - The JSR or JSR_W instructions that define this
subroutine by targeting it.
|
private InstructionHandle | theRET - The RET instruction that leaves this subroutine.
|
UNSET
private static final int UNSET
UNSET, a symbol for an uninitialized localVariable
field. This is used for the "top-level" Subroutine;
i.e. no subroutine.
instructions
private Set instructions
The instructions that belong to this subroutine.
localVariable
private int localVariable
The Local Variable slot where the first
instruction of this subroutine (an ASTORE) stores
the JsrInstruction's ReturnAddress in and
the RET of this subroutine operates on.
theJSRs
private Set theJSRs
The JSR or JSR_W instructions that define this
subroutine by targeting it.
theRET
private InstructionHandle theRET
The RET instruction that leaves this subroutine.
SubroutineImpl
public SubroutineImpl()
The default constructor.
_getRecursivelyAccessedLocalsIndicesHelper
private void _getRecursivelyAccessedLocalsIndicesHelper(Set s,
Subroutine[] subs)
A recursive helper method for getRecursivelyAccessedLocalsIndices().
addEnteringJsrInstruction
public void addEnteringJsrInstruction(InstructionHandle jsrInst)
Adds a new JSR or JSR_W that has this subroutine as its target.
setLeavingRET
(package private) void setLeavingRET()
Sets the leaving RET instruction. Must be invoked after all instructions are added.
Must not be invoked for top-level 'subroutine'.
setLocalVariable
(package private) void setLocalVariable(int i)
toString
public String toString()
Returns a String representation of this object, merely
for debugging purposes.
(Internal) Warning: Verbosity on a problematic subroutine may cause
stack overflow errors due to recursive subSubs() calls.
Don't use this, then.