|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object soot.jimple.toolkits.annotation.purity.AbstractInterproceduralAnalysis soot.jimple.toolkits.annotation.purity.PurityInterproceduralAnalysis
public class PurityInterproceduralAnalysis
Field Summary |
---|
Fields inherited from class soot.jimple.toolkits.annotation.purity.AbstractInterproceduralAnalysis |
---|
cg, data, dg, doCheck, order, unanalysed |
Method Summary | |
---|---|
protected void |
analyseMethod(SootMethod method,
Object dst)
Compute the summary for a method by analysing its body. |
protected void |
applySummary(Object src,
Stmt stmt,
Object summary,
Object dst)
Interprocedural analysis will call applySummary repeatidly as a consequence to analyseCall. |
protected void |
copy(Object source,
Object dest)
Copy src into dst. |
protected void |
fillDotGraph(String prefix,
Object o,
DotGraph out)
Called by drawAsOneDot to fill dot subgraph out with the contents of summary o. |
protected void |
merge(Object in1,
Object in2,
Object out)
Merge in1 and in2 into out. |
protected Object |
newInitialSummary()
Initial summary value for analysed funtions. |
protected Object |
summaryOfUnanalysedMethod(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 |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
protected Object newInitialSummary()
AbstractInterproceduralAnalysis
newInitialSummary
in class AbstractInterproceduralAnalysis
protected void merge(Object in1, Object in2, Object out)
AbstractInterproceduralAnalysis
Note: in1 or in2 can be aliased to out (e.g., analyseCall).
merge
in class AbstractInterproceduralAnalysis
protected void copy(Object source, Object dest)
AbstractInterproceduralAnalysis
copy
in class AbstractInterproceduralAnalysis
protected void analyseMethod(SootMethod method, Object dst)
AbstractInterproceduralAnalysis
analyseMethod
in class AbstractInterproceduralAnalysis
method
- is the method to be analyseddst
- is where to put the computed method summaryprotected Object summaryOfUnanalysedMethod(SootMethod method)
AbstractInterproceduralAnalysis
Note: This function is called at most once per filtered-out method. It is the equivalent of entryInitialFlow!
summaryOfUnanalysedMethod
in class AbstractInterproceduralAnalysis
PurityGraph.conservativeGraph
,
PurityGraph.freshGraph
protected void applySummary(Object src, Stmt stmt, Object summary, Object dst)
AbstractInterproceduralAnalysis
applySummary
in class AbstractInterproceduralAnalysis
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.methodCall
protected void fillDotGraph(String prefix, Object o, DotGraph out)
AbstractInterproceduralAnalysis
fillDotGraph
in class AbstractInterproceduralAnalysis
prefix
- gives you a unique string to prefix your node names
and avoid name-clash
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |