org.apache.bcel.verifier.structurals
private class ControlFlowGraph.InstructionContextImpl extends Object implements InstructionContext
Field Summary | |
---|---|
ArrayList | executionPredecessors
The 'execution predecessors' - a list of type InstructionContext
of those instances that have been execute()d before in that order. |
Map | inFrames
The 'incoming' execution Frames. |
InstructionHandle | instruction
The InstructionHandle this InstructionContext is wrapped around. |
Map | outFrames
The 'outgoing' execution Frames. |
int | TAG
The TAG field is here for external temporary flagging, such
as graph colouring.
|
Constructor Summary | |
---|---|
InstructionContextImpl(InstructionHandle inst)
Creates an InstructionHandleImpl object from an InstructionHandle.
|
Method Summary | |
---|---|
boolean | execute(Frame inFrame, ArrayList execPreds, InstConstraintVisitor icv, ExecutionVisitor ev)
"Merges in" (vmspec2, page 146) the "incoming" frame situation;
executes the instructions symbolically
and therefore calculates the "outgoing" frame situation.
|
void | extendMessageWithFlow(StructuralCodeConstraintException e)
Extends the StructuralCodeConstraintException ("e") object with an at-the-end-extended message.
|
ExceptionHandler[] | getExceptionHandlers()
Returns the exception handlers of this instruction. |
String | getExecutionChain()
Returns the control flow execution chain. |
Frame | getInFrame() |
InstructionHandle | getInstruction() |
Frame | getOutFrame(ArrayList execChain)
Returns a clone of the "outgoing" frame situation with respect to the given ExecutionChain. |
InstructionContext[] | getSuccessors() |
int | getTag() |
ControlFlowGraph.InstructionContextImpl | lastExecutionJSR()
Returns the InstructionContextImpl with an JSR/JSR_W
that was last in the ExecutionChain, without
a corresponding RET, i.e.
we were called by this one.
|
boolean | mergeInFrames(Frame inFrame)
Does the actual merging (vmspec2, page 146).
|
void | setTag(int tag) |
String | toString()
Returns a simple String representation of this InstructionContext. |
InstructionHandle[] | _getSuccessors()
A utility method that calculates the successors of a given InstructionHandle
That means, a RET does have successors as defined here.
|
See Also: getTag InstructionContextImpl
Returns: true - if and only if the "outgoing" frame situation changed from the one before execute()ing.