Class ReachingCopies
- java.lang.Object
-
- soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
-
- soot.dava.toolkits.base.AST.structuredAnalysis.ReachingCopies
-
public class ReachingCopies extends StructuredAnalysis
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classReachingCopies.LocalPairDEFINIING LOCAL PAIR CLASS
-
Field Summary
-
Fields inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
DEBUG, DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE
-
-
Constructor Summary
Constructors Constructor Description ReachingCopies(Object analyze)END OF LOCAL PAIR CLASS
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DavaFlowSetcloneFlowSet(DavaFlowSet flowSet)Make a clone of the flowset The implementor should know when they want a shallow or deep cloneDavaFlowSetemptyFlowSet()voidgen(DavaFlowSet in, Local left, Local right)DavaFlowSetgetReachingCopies(Object node)voidkill(DavaFlowSet<ReachingCopies.LocalPair> in, Local redefined)DavaFlowSetnewInitialFlow()DavaFlowSetprocessStatement(Stmt s, DavaFlowSet input)Specific stmts within AST Constructs are processed through this method.DavaFlowSetprocessSwitchKey(Value key, DavaFlowSet input)Deal with the key in the switch constructDavaFlowSetprocessSynchronizedLocal(Local local, DavaFlowSet input)To deal with the local used for synch blocksDavaFlowSetprocessUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet input)To have maximum flexibility in analyzing conditions the analysis API breaks down the aggregated conditions to simple unary or binary conditions user defined code can then deal with each condition separately.voidsetMergeType()-
Methods inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
debug, debug, getAfterSet, getBeforeSet, getLabel, handleBreak, handleContinue, isDifferent, merge, mergeExplicitAndImplicit, print, process, processAbruptStatements, processASTDoWhileNode, processASTForLoopNode, processASTIfElseNode, processASTIfNode, processASTLabeledBlockNode, processASTMethodNode, processASTNode, processASTStatementSequenceNode, processASTSwitchNode, processASTSynchronizedBlockNode, processASTTryNode, processASTUnconditionalLoopNode, processASTWhileNode, processCondition, processSingleSubBodyNode
-
-
-
-
Constructor Detail
-
ReachingCopies
public ReachingCopies(Object analyze)
END OF LOCAL PAIR CLASS
-
-
Method Detail
-
emptyFlowSet
public DavaFlowSet emptyFlowSet()
- Specified by:
emptyFlowSetin classStructuredAnalysis
-
setMergeType
public void setMergeType()
- Specified by:
setMergeTypein classStructuredAnalysis
-
newInitialFlow
public DavaFlowSet newInitialFlow()
- Specified by:
newInitialFlowin classStructuredAnalysis
-
cloneFlowSet
public DavaFlowSet cloneFlowSet(DavaFlowSet flowSet)
Description copied from class:StructuredAnalysisMake a clone of the flowset The implementor should know when they want a shallow or deep clone- Specified by:
cloneFlowSetin classStructuredAnalysis
-
processUnaryBinaryCondition
public DavaFlowSet processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet input)
Description copied from class:StructuredAnalysisTo have maximum flexibility in analyzing conditions the analysis API breaks down the aggregated conditions to simple unary or binary conditions user defined code can then deal with each condition separately. To be able to deal with entire aggregated conditions the user should wite their own implementation of the method processCondition- Specified by:
processUnaryBinaryConditionin classStructuredAnalysis
-
processSynchronizedLocal
public DavaFlowSet processSynchronizedLocal(Local local, DavaFlowSet input)
Description copied from class:StructuredAnalysisTo deal with the local used for synch blocks- Specified by:
processSynchronizedLocalin classStructuredAnalysis
-
processSwitchKey
public DavaFlowSet processSwitchKey(Value key, DavaFlowSet input)
Description copied from class:StructuredAnalysisDeal with the key in the switch construct- Specified by:
processSwitchKeyin classStructuredAnalysis
-
processStatement
public DavaFlowSet processStatement(Stmt s, DavaFlowSet input)
Description copied from class:StructuredAnalysisSpecific stmts within AST Constructs are processed through this method. It will be invoked everytime a stmt is encountered- Specified by:
processStatementin classStructuredAnalysis
-
gen
public void gen(DavaFlowSet in, Local left, Local right)
-
kill
public void kill(DavaFlowSet<ReachingCopies.LocalPair> in, Local redefined)
-
getReachingCopies
public DavaFlowSet getReachingCopies(Object node)
-
-