|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavassist.bytecode.analysis.ControlFlow
public class ControlFlow
Represents the control flow graph of a given method.
To obtain the control flow graph, do the following:
CtMethod m = ... ControlFlow cf = new ControlFlow(m); Block[] blocks = cf.basicBlocks();
blocks
is an array of basic blocks in
that method body.
CtMethod
,
ControlFlow.Block
,
Frame
,
Analyzer
Nested Class Summary | |
---|---|
static class |
ControlFlow.Block
Basic block. |
static class |
ControlFlow.Catcher
Represents a catch clause. |
static class |
ControlFlow.Node
A node of (post) dominator trees. |
Constructor Summary | |
---|---|
ControlFlow(CtClass ctclazz,
MethodInfo minfo)
Constructs a control-flow analyzer. |
|
ControlFlow(CtMethod method)
Constructs a control-flow analyzer for the given method. |
Method Summary | |
---|---|
ControlFlow.Block[] |
basicBlocks()
Returns all the basic blocks in the method body. |
ControlFlow.Node[] |
dominatorTree()
Constructs a dominator tree. |
Frame |
frameAt(int pos)
Returns the types of the local variables and stack frame entries available at the given position. |
ControlFlow.Node[] |
postDominatorTree()
Constructs a post dominator tree. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ControlFlow(CtMethod method) throws BadBytecode
BadBytecode
public ControlFlow(CtClass ctclazz, MethodInfo minfo) throws BadBytecode
BadBytecode
Method Detail |
---|
public ControlFlow.Block[] basicBlocks()
public Frame frameAt(int pos) throws BadBytecode
pos
- the position.
BadBytecode
public ControlFlow.Node[] dominatorTree()
The order of the elements is the same as that
of the elements in the Block
array returned
by the basicBlocks
method. If a Block
object is at the i-th position
in the Block
array, then
the Node
object referring to that
Block
object is at the i-th position in the
array returned by this method.
For every array element node
, its index in the
array is equivalent to node.block().index()
.
ControlFlow.Node.block()
,
ControlFlow.Block.index()
public ControlFlow.Node[] postDominatorTree()
The order of the elements is the same as that
of the elements in the Block
array returned
by the basicBlocks
method. If a Block
object is at the i-th position
in the Block
array, then
the Node
object referring to that
Block
object is at the i-th position in the
array returned by this method.
For every array element node
, its index in the
array is equivalent to node.block().index()
.
ControlFlow.Node.block()
,
ControlFlow.Block.index()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |