public class ArrayRefBlockGraph extends BlockGraph
| Constructor and Description |
|---|
ArrayRefBlockGraph(Body body)
Constructs an
ArrayRefBlockGraph from the given Body. |
ArrayRefBlockGraph(BriefUnitGraph unitGraph)
Constructs an ArrayRefBlockGraph corresponding to the Unit-level control flow represented by the
passed
BriefUnitGraph. |
| Modifier and Type | Method and Description |
|---|---|
protected Set<Unit> |
computeLeaders(UnitGraph unitGraph)
|
buildBlocks, getBlocks, getBody, getHeads, getPredsOf, getSuccsOf, getTails, iterator, size, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic ArrayRefBlockGraph(Body body)
Constructs an ArrayRefBlockGraph from the given Body.
Note that this constructor builds a BriefUnitGraph internally when splitting body's Units into
Blocks. Callers who need both a BriefUnitGraph and an ArrayRefBlockGraph should use the
constructor taking the BriefUnitGraph as a parameter, as a minor optimization.
the - Body instance from which the graph is built.public ArrayRefBlockGraph(BriefUnitGraph unitGraph)
BriefUnitGraph.unitGraph - The BriefUnitGraph for which to build an ArrayRefBlockGraph.protected Set<Unit> computeLeaders(UnitGraph unitGraph)
Utility method for computing the basic block leaders for a Body, given its UnitGraph (i.e., the
instructions which begin new basic blocks).
This implementation chooses as block leaders all the Units that BlockGraph.computerLeaders(), and adds:
Stmt.containsArrayRef() and
Inst.containsArrayRef().
Trap (i.e., the Unit returned by
Trap.getLastUnit().computeLeaders in class BlockGraphunitGraph - is the Unit-level CFG which is to be split into basic blocks.Set of Units in unitGraph which are block leaders.Copyright © 2020 Soot OSS. All rights reserved.