org.apache.bcel.verifier.structurals
Interface InstructionContext
- ControlFlowGraph.InstructionContextImpl
public interface InstructionContext
An InstructionContext offers convenient access
to information like control flow successors and
such.
$Id: InstructionContext.java 382272 2006-03-02 03:31:46Z tcurdt $
execute
public boolean execute(Frame inFrame,
ArrayList executionPredecessors,
InstConstraintVisitor icv,
ExecutionVisitor ev)
This method symbolically executes the Instruction
held in the InstructionContext.
It "merges in" the incoming execution frame situation
(see The Java Virtual Machine Specification, 2nd
edition, page 146).
By so doing, the outgoing execution frame situation
is calculated.
This method is JustIce-specific and is usually of
no sense for users of the ControlFlowGraph class.
They should use getInstruction().accept(Visitor),
possibly in conjunction with the ExecutionVisitor.
- true - if and only if the "outgoing" frame situation
changed from the one before execute()ing.
getExceptionHandlers
public ExceptionHandler[] getExceptionHandlers()
Returns the exception handlers that protect this instruction.
They are special control flow successors.
getInFrame
public Frame getInFrame()
getInstruction
public InstructionHandle getInstruction()
Returns the InstructionHandle this InstructionContext is wrapped around.
- The InstructionHandle this InstructionContext is wrapped around.
getOutFrame
public Frame getOutFrame(ArrayList executionPredecessors)
This method returns the outgoing execution frame situation;
therefore it has to be calculated by execute(Frame, ArrayList)
first.
getSuccessors
public InstructionContext[] getSuccessors()
Returns the usual control flow successors.
getTag
public int getTag()
The getTag and setTag methods may be used for
temporary flagging, such as graph colouring.
Nothing in the InstructionContext object depends
on the value of the tag. JustIce does not use it.
setTag
public void setTag(int tag)
The getTag and setTag methods may be used for
temporary flagging, such as graph colouring.
Nothing in the InstructionContext object depends
on the value of the tag. JustIce does not use it.