|
||||||||||
| 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 |
|---|
clone, equals, finalize, 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.
BadBytecodepublic 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 | |||||||||