public class PurityInterproceduralAnalysis extends AbstractInterproceduralAnalysis<PurityGraphBox>
cg, data, dg, doCheck, order, unanalysed| Modifier and Type | Method and Description |
|---|---|
protected void |
analyseMethod(SootMethod method,
PurityGraphBox dst)
Compute the summary for a method by analysing its body.
|
protected void |
applySummary(PurityGraphBox src,
Stmt stmt,
PurityGraphBox summary,
PurityGraphBox dst)
Interprocedural analysis will call applySummary repeatedly as a
consequence to
AbstractInterproceduralAnalysis.analyseCall(Object, Stmt, Object), once for each
possible target method of the callStmt, provided with its
summary. |
protected void |
copy(PurityGraphBox source,
PurityGraphBox dest)
Copy src into dst.
|
protected void |
fillDotGraph(java.lang.String prefix,
PurityGraphBox o,
DotGraph out)
Called by drawAsOneDot to fill dot subgraph out with the contents of
summary o.
|
protected void |
merge(PurityGraphBox in1,
PurityGraphBox in2,
PurityGraphBox out)
Merge in1 and in2 into out.
|
protected PurityGraphBox |
newInitialSummary()
Initial summary value for analysed functions.
|
protected PurityGraphBox |
summaryOfUnanalysedMethod(SootMethod method)
Whenever the analyse requires the summary of a method you filtered-out,
this function is called instead of analyseMethod.
|
analyseCall, doAnalysis, drawAsManyDot, drawAsOneDot, getAnalysedMethods, getSummaryForprotected PurityGraphBox newInitialSummary()
AbstractInterproceduralAnalysisnewInitialSummary in class AbstractInterproceduralAnalysis<PurityGraphBox>protected void merge(PurityGraphBox in1, PurityGraphBox in2, PurityGraphBox out)
AbstractInterproceduralAnalysismerge in class AbstractInterproceduralAnalysis<PurityGraphBox>protected void copy(PurityGraphBox source, PurityGraphBox dest)
AbstractInterproceduralAnalysiscopy in class AbstractInterproceduralAnalysis<PurityGraphBox>protected void analyseMethod(SootMethod method, PurityGraphBox dst)
AbstractInterproceduralAnalysisanalyseMethod in class AbstractInterproceduralAnalysis<PurityGraphBox>method - is the method to be analyseddst - is where to put the computed method summaryprotected PurityGraphBox summaryOfUnanalysedMethod(SootMethod method)
AbstractInterproceduralAnalysisNote: This function is called at most once per filtered-out method. It is the equivalent of entryInitialFlow!
summaryOfUnanalysedMethod in class AbstractInterproceduralAnalysis<PurityGraphBox>PurityGraph.conservativeGraph,
PurityGraph.freshGraphprotected void applySummary(PurityGraphBox src, Stmt stmt, PurityGraphBox summary, PurityGraphBox dst)
AbstractInterproceduralAnalysisAbstractInterproceduralAnalysis.analyseCall(Object, Stmt, Object), once for each
possible target method of the callStmt, provided with its
summary.applySummary in class AbstractInterproceduralAnalysis<PurityGraphBox>stmt - any statement containing an InvokeExprsrc - summary valid before the call statementsummary - summary of the possible target of callStmt considered
heredst - where to put the resultPurityGraph.methodCallprotected void fillDotGraph(java.lang.String prefix,
PurityGraphBox o,
DotGraph out)
AbstractInterproceduralAnalysisfillDotGraph in class AbstractInterproceduralAnalysis<PurityGraphBox>prefix - gives you a unique string to prefix your node names and
avoid name-clash