public abstract class AbstractJimpleBasedICFG extends Object implements BiDiInterproceduralCFG<Unit,SootMethod>
Modifier and Type | Field and Description |
---|---|
protected <any> |
bodyToUnitGraph |
protected boolean |
enableExceptions |
protected <any> |
methodToCallsFromWithin |
protected <any> |
methodToParameterRefs |
protected Map<Unit,Body> |
unitToOwner |
Constructor and Description |
---|
AbstractJimpleBasedICFG() |
AbstractJimpleBasedICFG(boolean enableExceptions) |
protected final boolean enableExceptions
protected final <any> bodyToUnitGraph
protected final <any> methodToParameterRefs
protected final <any> methodToCallsFromWithin
public AbstractJimpleBasedICFG()
public AbstractJimpleBasedICFG(boolean enableExceptions)
public SootMethod getMethodOf(Unit u)
getMethodOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public List<Unit> getSuccsOf(Unit u)
getSuccsOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public DirectedGraph<Unit> getOrCreateUnitGraph(SootMethod m)
getOrCreateUnitGraph
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public DirectedGraph<Unit> getOrCreateUnitGraph(Body body)
protected DirectedGraph<Unit> makeGraph(Body body)
public boolean isExitStmt(Unit u)
isExitStmt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isStartPoint(Unit u)
isStartPoint
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isFallThroughSuccessor(Unit u, Unit succ)
isFallThroughSuccessor
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isBranchTarget(Unit u, Unit succ)
isBranchTarget
in interface heros.InterproceduralCFG<Unit,SootMethod>
public List<Value> getParameterRefs(SootMethod m)
getParameterRefs
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public Collection<Unit> getStartPointsOf(SootMethod m)
getStartPointsOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isCallStmt(Unit u)
isCallStmt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Set<Unit> allNonCallStartNodes()
allNonCallStartNodes
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Set<Unit> allNonCallEndNodes()
allNonCallEndNodes
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public Collection<Unit> getReturnSitesOfCallAt(Unit u)
getReturnSitesOfCallAt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Set<Unit> getCallsFromWithin(SootMethod m)
getCallsFromWithin
in interface heros.InterproceduralCFG<Unit,SootMethod>
public List<Unit> getPredsOf(Unit u)
getPredsOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
getPredsOf
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public Collection<Unit> getEndPointsOf(SootMethod m)
getEndPointsOf
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public List<Unit> getPredsOfCallAt(Unit u)
getPredsOfCallAt
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public boolean isReturnSite(Unit n)
BiDiInterproceduralCFG
isReturnSite
in interface BiDiInterproceduralCFG<Unit,SootMethod>
n
- The statement to checkpublic boolean isReachable(Unit u)
BiDiInterproceduralCFG
isReachable
in interface BiDiInterproceduralCFG<Unit,SootMethod>
u
- The statement to check