Package soot.toolkits.scalar
Class LocalDefsFactory
- java.lang.Object
-
- soot.toolkits.scalar.LocalDefsFactory
-
public class LocalDefsFactory extends Object
The default implementation of local defs.
-
-
Constructor Summary
Constructors Constructor Description LocalDefsFactory(Singletons.Global global)Singleton constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LocalDefsnewLocalDefs(Body body)Creates a new LocalDefs analysis based on aExceptionalUnitGraphLocalDefsnewLocalDefs(Body body, boolean expectUndefined)Creates a new LocalDefs analysis based on aExceptionalUnitGraphIf you don't trust the input you should setexpectUndefinedtotrue.LocalDefsnewLocalDefs(UnitGraph graph)Creates a new LocalDefs analysis based on a givenUnitGraphLocalDefsnewLocalDefs(UnitGraph graph, boolean expectUndefined)Creates a new LocalDefs analysis based on a givenUnitGraph.LocalDefsnewLocalDefsFlowInsensitive(UnitGraph graph)Creates a new LocalDefs analysis based on a givenUnitGraph.
-
-
-
Constructor Detail
-
LocalDefsFactory
public LocalDefsFactory(Singletons.Global global)
Singleton constructor.- Parameters:
global- the singletons container. Must not benull- Throws:
NullPointerException- whenglobalargument isnull
-
-
Method Detail
-
newLocalDefs
public LocalDefs newLocalDefs(Body body)
Creates a new LocalDefs analysis based on aExceptionalUnitGraph- Parameters:
body-- Returns:
- a new LocalDefs instance
- See Also:
ExceptionalUnitGraphFactory.createExceptionalUnitGraph(Body),UsesValidator
-
newLocalDefs
public LocalDefs newLocalDefs(Body body, boolean expectUndefined)
Creates a new LocalDefs analysis based on aExceptionalUnitGraphIf you don't trust the input you should setexpectUndefinedtotrue.- Parameters:
body-expectUndefined- if you expect uses of locals that are undefined- Returns:
- a new LocalDefs instance
- See Also:
ExceptionalUnitGraphFactory.createExceptionalUnitGraph(Body)
-
newLocalDefs
public LocalDefs newLocalDefs(UnitGraph graph)
Creates a new LocalDefs analysis based on a givenUnitGraph- Parameters:
graph- the graph to work with- Returns:
- a new LocalDefs instance
- See Also:
UnitGraph(Body)
-
newLocalDefs
public LocalDefs newLocalDefs(UnitGraph graph, boolean expectUndefined)
Creates a new LocalDefs analysis based on a givenUnitGraph. If you don't trust the input you should setexpectUndefinedtotrue.- Parameters:
graph- the graph to work withexpectUndefined- if you expect uses of locals that are undefined- Returns:
- a new LocalDefs instance
- See Also:
UnitGraph(Body),UsesValidator
-
newLocalDefsFlowInsensitive
public LocalDefs newLocalDefsFlowInsensitive(UnitGraph graph)
Creates a new LocalDefs analysis based on a givenUnitGraph. This analysis will be flow-insensitive, i.e., for a given local, it will always give all statements that ever write to that local regardless of potential redefinitions in between.- Parameters:
graph- the graph to work with- Returns:
- a new LocalDefs instance
- See Also:
UnitGraph(Body),UsesValidator
-
-