public abstract class AbstractJimpleBasedICFG extends java.lang.Object implements BiDiInterproceduralCFG<Unit,SootMethod>
| Modifier and Type | Field and Description |
|---|---|
protected com.google.common.cache.LoadingCache<Body,DirectedGraph<Unit>> |
bodyToUnitGraph |
protected boolean |
enableExceptions |
protected com.google.common.cache.LoadingCache<SootMethod,java.util.Set<Unit>> |
methodToCallsFromWithin |
protected com.google.common.cache.LoadingCache<SootMethod,java.util.List<Value>> |
methodToParameterRefs |
protected java.util.Map<Unit,Body> |
unitToOwner |
| Constructor and Description |
|---|
AbstractJimpleBasedICFG() |
AbstractJimpleBasedICFG(boolean enableExceptions) |
protected final boolean enableExceptions
protected final com.google.common.cache.LoadingCache<Body,DirectedGraph<Unit>> bodyToUnitGraph
protected final com.google.common.cache.LoadingCache<SootMethod,java.util.List<Value>> methodToParameterRefs
protected final com.google.common.cache.LoadingCache<SootMethod,java.util.Set<Unit>> methodToCallsFromWithin
public AbstractJimpleBasedICFG()
public AbstractJimpleBasedICFG(boolean enableExceptions)
public SootMethod getMethodOf(Unit u)
getMethodOf in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.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 java.util.List<Value> getParameterRefs(SootMethod m)
getParameterRefs in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.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 java.util.Set<Unit> allNonCallStartNodes()
allNonCallStartNodes in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Set<Unit> allNonCallEndNodes()
allNonCallEndNodes in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.Collection<Unit> getReturnSitesOfCallAt(Unit u)
getReturnSitesOfCallAt in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Set<Unit> getCallsFromWithin(SootMethod m)
getCallsFromWithin in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.List<Unit> getPredsOf(Unit u)
getPredsOf in interface heros.InterproceduralCFG<Unit,SootMethod>getPredsOf in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.Collection<Unit> getEndPointsOf(SootMethod m)
getEndPointsOf in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.List<Unit> getPredsOfCallAt(Unit u)
getPredsOfCallAt in interface BiDiInterproceduralCFG<Unit,SootMethod>public boolean isReturnSite(Unit n)
BiDiInterproceduralCFGisReturnSite in interface BiDiInterproceduralCFG<Unit,SootMethod>n - The statement to check