Package | Description |
---|---|
org.apache.bcel.verifier.structurals |
Provides a PassVerifier class mostly used internally by JustIce, yielding a control flow graph for public use as
a nice side effect.
|
Modifier and Type | Class and Description |
---|---|
private class |
ControlFlowGraph.InstructionContextImpl
Objects of this class represent a node in a ControlFlowGraph.
|
Modifier and Type | Field and Description |
---|---|
private java.util.List<java.util.ArrayList<InstructionContext>> |
Pass3bVerifier.InstructionContextQueue.ecs |
private java.util.List<InstructionContext> |
ControlFlowGraph.InstructionContextImpl.executionPredecessors
The 'execution predecessors' - a list of type InstructionContext
of those instances that have been execute()d before in that order.
|
private java.util.List<InstructionContext> |
Pass3bVerifier.InstructionContextQueue.ics |
private java.util.Map<InstructionContext,Frame> |
ControlFlowGraph.InstructionContextImpl.inFrames
The 'incoming' execution Frames.
|
private java.util.Map<InstructionHandle,InstructionContext> |
ControlFlowGraph.instructionContexts
All InstructionContext instances of this ControlFlowGraph.
|
private java.util.Map<InstructionContext,Frame> |
ControlFlowGraph.InstructionContextImpl.outFrames
The 'outgoing' execution Frames.
|
Modifier and Type | Method and Description |
---|---|
InstructionContext |
ControlFlowGraph.contextOf(InstructionHandle inst)
Returns the InstructionContext of a given instruction.
|
InstructionContext[] |
ControlFlowGraph.contextsOf(InstructionHandle[] insts)
Returns the InstructionContext[] of a given InstructionHandle[],
in a naturally ordered manner.
|
InstructionContext |
Pass3bVerifier.InstructionContextQueue.getIC(int i) |
InstructionContext[] |
ControlFlowGraph.getInstructionContexts()
Returns an InstructionContext[] with all the InstructionContext instances
for the method whose control flow is represented by this ControlFlowGraph
(NOT ORDERED!).
|
InstructionContext[] |
ControlFlowGraph.InstructionContextImpl.getSuccessors() |
InstructionContext[] |
InstructionContext.getSuccessors()
Returns the usual control flow successors.
|
Modifier and Type | Method and Description |
---|---|
java.util.ArrayList<InstructionContext> |
Pass3bVerifier.InstructionContextQueue.getEC(int i) |
Modifier and Type | Method and Description |
---|---|
void |
Pass3bVerifier.InstructionContextQueue.add(InstructionContext ic,
java.util.ArrayList<InstructionContext> executionChain) |
private void |
Pass3bVerifier.circulationPump(MethodGen m,
ControlFlowGraph cfg,
InstructionContext start,
Frame vanillaFrame,
InstConstraintVisitor icv,
ExecutionVisitor ev)
Whenever the outgoing frame
situation of an InstructionContext changes, all its successors are
put [back] into the queue [as if they were unvisited].
|
Modifier and Type | Method and Description |
---|---|
void |
Pass3bVerifier.InstructionContextQueue.add(InstructionContext ic,
java.util.ArrayList<InstructionContext> executionChain) |
boolean |
ControlFlowGraph.InstructionContextImpl.execute(Frame inFrame,
java.util.ArrayList<InstructionContext> 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.
|
boolean |
InstructionContext.execute(Frame inFrame,
java.util.ArrayList<InstructionContext> executionPredecessors,
InstConstraintVisitor icv,
ExecutionVisitor ev)
This method symbolically executes the Instruction
held in the InstructionContext.
|
Frame |
ControlFlowGraph.InstructionContextImpl.getOutFrame(java.util.ArrayList<InstructionContext> execChain)
Returns a clone of the "outgoing" frame situation with respect to the given ExecutionChain.
|
Frame |
InstructionContext.getOutFrame(java.util.ArrayList<InstructionContext> executionPredecessors)
This method returns the outgoing execution frame situation;
therefore it has to be calculated by execute(Frame, ArrayList)
first.
|