Class PurityInterproceduralAnalysis
- java.lang.Object
-
- soot.jimple.toolkits.annotation.purity.AbstractInterproceduralAnalysis<PurityGraphBox>
-
- soot.jimple.toolkits.annotation.purity.PurityInterproceduralAnalysis
-
public class PurityInterproceduralAnalysis extends AbstractInterproceduralAnalysis<PurityGraphBox>
-
-
Field Summary
-
Fields inherited from class soot.jimple.toolkits.annotation.purity.AbstractInterproceduralAnalysis
cg, data, dg, doCheck, order, unanalysed
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidanalyseMethod(SootMethod method, PurityGraphBox dst)Compute the summary for a method by analysing its body.protected voidapplySummary(PurityGraphBox src, Stmt stmt, PurityGraphBox summary, PurityGraphBox dst)Interprocedural analysis will call applySummary repeatedly as a consequence toAbstractInterproceduralAnalysis.analyseCall(Object, Stmt, Object), once for each possible target method of thecallStmt, provided with its summary.protected voidcopy(PurityGraphBox source, PurityGraphBox dest)Copy src into dst.protected voidfillDotGraph(String prefix, PurityGraphBox o, DotGraph out)Called by drawAsOneDot to fill dot subgraph out with the contents of summary o.protected voidmerge(PurityGraphBox in1, PurityGraphBox in2, PurityGraphBox out)Merge in1 and in2 into out.protected PurityGraphBoxnewInitialSummary()Initial summary value for analysed functions.protected PurityGraphBoxsummaryOfUnanalysedMethod(SootMethod method)Whenever the analyse requires the summary of a method you filtered-out, this function is called instead of analyseMethod.-
Methods inherited from class soot.jimple.toolkits.annotation.purity.AbstractInterproceduralAnalysis
analyseCall, doAnalysis, drawAsManyDot, drawAsOneDot, getAnalysedMethods, getSummaryFor
-
-
-
-
Method Detail
-
newInitialSummary
protected PurityGraphBox newInitialSummary()
Description copied from class:AbstractInterproceduralAnalysisInitial summary value for analysed functions.- Specified by:
newInitialSummaryin classAbstractInterproceduralAnalysis<PurityGraphBox>- Returns:
-
merge
protected void merge(PurityGraphBox in1, PurityGraphBox in2, PurityGraphBox out)
Description copied from class:AbstractInterproceduralAnalysisMerge in1 and in2 into out. Note: in1 or in2 can be aliased to out (e.g., analyseCall).- Specified by:
mergein classAbstractInterproceduralAnalysis<PurityGraphBox>
-
copy
protected void copy(PurityGraphBox source, PurityGraphBox dest)
Description copied from class:AbstractInterproceduralAnalysisCopy src into dst.- Specified by:
copyin classAbstractInterproceduralAnalysis<PurityGraphBox>
-
analyseMethod
protected void analyseMethod(SootMethod method, PurityGraphBox dst)
Description copied from class:AbstractInterproceduralAnalysisCompute the summary for a method by analysing its body. Will be called only on methods not filtered-out.- Specified by:
analyseMethodin classAbstractInterproceduralAnalysis<PurityGraphBox>- Parameters:
method- is the method to be analyseddst- is where to put the computed method summary
-
summaryOfUnanalysedMethod
protected PurityGraphBox summaryOfUnanalysedMethod(SootMethod method)
Description copied from class:AbstractInterproceduralAnalysisWhenever the analyse requires the summary of a method you filtered-out, this function is called instead of analyseMethod.Note: This function is called at most once per filtered-out method. It is the equivalent of entryInitialFlow!
- Specified by:
summaryOfUnanalysedMethodin classAbstractInterproceduralAnalysis<PurityGraphBox>- Returns:
- See Also:
PurityGraph.conservativeGraph,PurityGraph.freshGraph
-
applySummary
protected void applySummary(PurityGraphBox src, Stmt stmt, PurityGraphBox summary, PurityGraphBox dst)
Description copied from class:AbstractInterproceduralAnalysisInterprocedural analysis will call applySummary repeatedly as a consequence toAbstractInterproceduralAnalysis.analyseCall(Object, Stmt, Object), once for each possible target method of thecallStmt, provided with its summary.- Specified by:
applySummaryin classAbstractInterproceduralAnalysis<PurityGraphBox>- Parameters:
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 result- See Also:
PurityGraph.methodCall
-
fillDotGraph
protected void fillDotGraph(String prefix, PurityGraphBox o, DotGraph out)
Description copied from class:AbstractInterproceduralAnalysisCalled by drawAsOneDot to fill dot subgraph out with the contents of summary o.- Overrides:
fillDotGraphin classAbstractInterproceduralAnalysis<PurityGraphBox>- Parameters:
prefix- gives you a unique string to prefix your node names and avoid name-clash
-
-