public abstract class FlowAnalysis<N,A> extends AbstractFlowAnalysis<N,A>
| Modifier and Type | Class and Description |
|---|---|
static class |
FlowAnalysis.Flow |
| Modifier and Type | Field and Description |
|---|---|
protected Map<N,A> |
filterUnitToAfterFlow
Filtered: Maps graph nodes to OUT sets.
|
protected Map<N,A> |
unitToAfterFlow
Maps graph nodes to OUT sets.
|
filterUnitToBeforeFlow, graph, unitToBeforeFlow| Constructor and Description |
|---|
FlowAnalysis(DirectedGraph<N> graph)
Constructs a flow analysis on the given
DirectedGraph. |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
flowThrough(A in,
N d,
A out)
Given the merge of the
out sets, compute the in set for s (or in to out,
depending on direction). |
protected FlowAnalysis.Flow |
getFlow(N from,
N mergeNode)
You can specify which flow set you would like to use of node
from |
A |
getFlowAfter(N s)
Accessor function returning value of OUT set for s.
|
A |
getFlowBefore(N s)
Accessor function returning value of IN set for s.
|
protected boolean |
omissible(N n)
If a flow node can be omitted return
true, otherwise false. |
copy, doAnalysis, entryInitialFlow, isForward, merge, merge, mergeInto, newInitialFlow, treatTrapHandlersAsEntriespublic FlowAnalysis(DirectedGraph<N> graph)
DirectedGraph.protected abstract void flowThrough(A in, N d, A out)
out sets, compute the in set for s (or in to out,
depending on direction).
This function often causes confusion, because the same interface is used for both forward and backward flow analyses.
The first parameter is always the argument to the flow function (i.e. it is the "in" set in a forward analysis and the
"out" set in a backward analysis), and the third parameter is always the result of the flow function (i.e. it is the
"out" set in a forward analysis and the "in" set in a backward analysis).in - the input flowd - the current nodeout - the returned flowpublic A getFlowBefore(N s)
AbstractFlowAnalysisgetFlowBefore in class AbstractFlowAnalysis<N,A>protected boolean omissible(N n)
true, otherwise false. There is no guarantee a node will
be omitted. A omissible node does not influence the result of an analysis.
If you are unsure, don't overwrite this methodn - the node to checkfalseprotected FlowAnalysis.Flow getFlow(N from, N mergeNode)
fromfrom - mergeNode - Copyright © 2020 Soot OSS. All rights reserved.