| Package | Description |
|---|---|
| soot |
Base Soot classes, shared by different intermediate representations.
|
| soot.coffi |
Contains classes from the Coffi tool, by Clark Verbrugge.
|
| soot.grimp | |
| soot.jimple |
Public classes for the Jimple intermediate representation.
|
| soot.jimple.internal |
Internal, messy, implementation-specific classes for the Jimple intermediate representation.
|
| soot.jimple.toolkits.annotation.nullcheck |
Classes that carry out an analysis to determine whether or not null pointer
checks are necessary.
|
| soot.jimple.toolkits.infoflow | |
| soot.jimple.toolkits.pointer | |
| soot.jimple.toolkits.scalar |
A toolkit for scalar optimization of Jimple.
|
| soot.jimple.toolkits.scalar.pre |
Particial redundency elimination.
|
| soot.jimple.toolkits.typing.fast | |
| soot.toolkits.scalar |
A number of scalar optimizations, and the flow analysis framework.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
Immediate
A local or constant.
|
interface |
Local
A local variable, used within Body
classes.
|
interface |
SootMethodHandle
Representation of a MethodHandle as used in the
invokedynamic
bytecode. |
interface |
SootMethodType
Representation of a MethodType as used in the
invokedynamic bytecode. |
| Modifier and Type | Class and Description |
|---|---|
class |
EquivalentValue
Encapsulates the Value class, but uses EquivTo for equality comparisons.
|
| Modifier and Type | Method and Description |
|---|---|
Value |
EquivalentValue.getDeepestValue()
returns the deepest Value stored in
this. |
Value |
IdentityUnit.getLeftOp() |
Value |
IdentityUnit.getRightOp() |
Value |
ValueBox.getValue()
Returns the value contained in this box.
|
Value |
EquivalentValue.getValue() |
Value |
AbstractValueBox.getValue() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
ValueBox.canContainValue(Value value)
Returns true if the given Value fits in this box.
|
boolean |
EquivalentValue.equalsToValue(Value v)
compares the encapsulated value with
v, using
equals |
boolean |
EquivalentValue.equivToValue(Value v)
compares the encapsulated value with
v, using
equivTo |
void |
ValueBox.setValue(Value value)
Sets the value contained in this box as given.
|
void |
AbstractValueBox.setValue(Value value) |
boolean |
SideEffectTester.unitCanReadFrom(Unit u,
Value v) |
boolean |
SideEffectTester.unitCanWriteTo(Unit u,
Value v) |
| Constructor and Description |
|---|
EquivalentValue(Value e) |
| Modifier and Type | Method and Description |
|---|---|
Value |
CONSTANT_Utf8_info.createJimpleConstantValue(soot.coffi.cp_info[] constant_pool) |
Value |
CONSTANT_Class_info.createJimpleConstantValue(soot.coffi.cp_info[] constant_pool) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
NewInvokeExpr |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
PrecedenceTest.needsBrackets(ValueBox subExprBox,
Value expr) |
static boolean |
PrecedenceTest.needsBracketsRight(ValueBox subExprBox,
Value expr) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
AddExpr |
interface |
AndExpr |
interface |
AnyNewExpr
Any expression that allocates objects.
|
interface |
ArrayRef |
interface |
BinopExpr |
interface |
CastExpr |
interface |
CaughtExceptionRef |
interface |
CmpExpr |
interface |
CmpgExpr |
interface |
CmplExpr |
interface |
ConcreteRef |
interface |
ConditionExpr |
interface |
DivExpr |
interface |
DynamicInvokeExpr |
interface |
EqExpr |
interface |
Expr |
interface |
FieldRef |
interface |
GeExpr |
interface |
GtExpr |
interface |
IdentityRef |
interface |
InstanceFieldRef |
interface |
InstanceInvokeExpr |
interface |
InstanceOfExpr |
interface |
InterfaceInvokeExpr |
interface |
InvokeExpr |
interface |
LeExpr |
interface |
LengthExpr |
interface |
LtExpr |
interface |
MulExpr |
interface |
NeExpr |
interface |
NegExpr |
interface |
NewArrayExpr |
interface |
NewExpr |
interface |
NewMultiArrayExpr |
interface |
OrExpr |
interface |
Ref |
interface |
RemExpr |
interface |
ShlExpr |
interface |
ShrExpr |
interface |
SpecialInvokeExpr |
interface |
StaticInvokeExpr |
interface |
SubExpr |
interface |
UnopExpr |
interface |
UshrExpr |
interface |
VirtualInvokeExpr |
interface |
XorExpr |
| Modifier and Type | Class and Description |
|---|---|
class |
ArithmeticConstant |
class |
ClassConstant |
class |
Constant |
class |
DoubleConstant |
class |
FloatConstant |
class |
IntConstant |
class |
LongConstant |
class |
NullConstant |
class |
NumericConstant |
class |
ParameterRef
ParameterRef objects are used by Body
objects to refer to the parameter slots on method entry. |
class |
RealConstant |
class |
StaticFieldRef |
class |
StringConstant |
class |
ThisRef |
| Modifier and Type | Method and Description |
|---|---|
static Value |
Jimple.cloneIfNecessary(Value val) |
Value |
InvokeExpr.getArg(int index) |
Value |
InstanceInvokeExpr.getBase() |
Value |
InstanceFieldRef.getBase() |
Value |
ArrayRef.getBase() |
Value |
IfStmt.getCondition() |
Value |
ArrayRef.getIndex() |
Value |
TableSwitchStmt.getKey() |
Value |
LookupSwitchStmt.getKey() |
Value |
DefinitionStmt.getLeftOp() |
Value |
UnopExpr.getOp() |
Value |
ThrowStmt.getOp() |
Value |
ReturnStmt.getOp() |
Value |
MonitorStmt.getOp() |
Value |
InstanceOfExpr.getOp() |
Value |
ExitMonitorStmt.getOp() |
Value |
EnterMonitorStmt.getOp() |
Value |
CastExpr.getOp() |
Value |
BinopExpr.getOp1() |
Value |
BinopExpr.getOp2() |
Value |
DefinitionStmt.getRightOp() |
Value |
NewArrayExpr.getSize() |
Value |
NewMultiArrayExpr.getSize(int index) |
Value |
RetStmt.getStmtAddress() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<Value> |
InvokeExpr.getArgs() |
java.util.List<Value> |
DynamicInvokeExpr.getBootstrapArgs() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
PointerStmtSwitch.caseAssignConstStmt(Value dest,
Constant c)
A statement of the form l = constant;
|
static Value |
Jimple.cloneIfNecessary(Value val) |
AddExpr |
Jimple.newAddExpr(Value op1,
Value op2)
Constructs a AddExpr(Immediate, Immediate) grammar chunk.
|
AndExpr |
Jimple.newAndExpr(Value op1,
Value op2)
Constructs a AndExpr(Immediate, Immediate) grammar chunk.
|
ValueBox |
Jimple.newArgBox(Value value) |
ArrayRef |
Jimple.newArrayRef(Value base,
Value index)
Constructs a ArrayRef(Local, Immediate) grammar chunk.
|
AssignStmt |
Jimple.newAssignStmt(Value variable,
Value rvalue)
Constructs a AssignStmt(Variable, RValue) grammar chunk.
|
CastExpr |
Jimple.newCastExpr(Value op1,
Type t)
Constructs a CastExpr(Immediate, Type) grammar chunk.
|
CmpExpr |
Jimple.newCmpExpr(Value op1,
Value op2)
Constructs a CmpExpr(Immediate, Immediate) grammar chunk.
|
CmpgExpr |
Jimple.newCmpgExpr(Value op1,
Value op2)
Constructs a CmpgExpr(Immediate, Immediate) grammar chunk.
|
CmplExpr |
Jimple.newCmplExpr(Value op1,
Value op2)
Constructs a CmplExpr(Immediate, Immediate) grammar chunk.
|
ValueBox |
Jimple.newConditionExprBox(Value value) |
DivExpr |
Jimple.newDivExpr(Value op1,
Value op2)
Constructs a DivExpr(Immediate, Immediate) grammar chunk.
|
EnterMonitorStmt |
Jimple.newEnterMonitorStmt(Value op)
Constructs a EnterMonitorStmt(Immediate) grammar chunk.
|
EqExpr |
Jimple.newEqExpr(Value op1,
Value op2)
Constructs a EqExpr(Immediate, Immediate) grammar chunk.
|
ExitMonitorStmt |
Jimple.newExitMonitorStmt(Value op)
Constructs a ExitMonitorStmt(Immediate) grammar chunk
|
GeExpr |
Jimple.newGeExpr(Value op1,
Value op2)
Constructs a GeExpr(Immediate, Immediate) grammar chunk.
|
GtExpr |
Jimple.newGtExpr(Value op1,
Value op2)
Constructs a GtExpr(Immediate, Immediate) grammar chunk.
|
ValueBox |
Jimple.newIdentityRefBox(Value value) |
IdentityStmt |
Jimple.newIdentityStmt(Value local,
Value identityRef)
Constructs a IdentityStmt(Local, IdentityRef) grammar chunk.
|
IfStmt |
Jimple.newIfStmt(Value condition,
Unit target)
Constructs a IfStmt(Condition, Stmt) grammar chunk.
|
IfStmt |
Jimple.newIfStmt(Value condition,
UnitBox target) |
ValueBox |
Jimple.newImmediateBox(Value value) |
InstanceFieldRef |
Jimple.newInstanceFieldRef(Value base,
SootFieldRef f)
Constructs a InstanceFieldRef(Local, SootFieldRef) grammar chunk.
|
InstanceOfExpr |
Jimple.newInstanceOfExpr(Value op1,
Type t)
Constructs a InstanceOfExpr(Immediate, Type)
grammar chunk.
|
InterfaceInvokeExpr |
Jimple.newInterfaceInvokeExpr(Local base,
SootMethodRef method,
Value arg)
Constructs a NewInterfaceInvokeExpr(Local base, SootMethodRef method, List of Immediate) grammar chunk.
|
InterfaceInvokeExpr |
Jimple.newInterfaceInvokeExpr(Local base,
SootMethodRef method,
Value arg1,
Value arg2)
Constructs a NewInterfaceInvokeExpr(Local base, SootMethodRef method, List of Immediate) grammar chunk.
|
ValueBox |
Jimple.newInvokeExprBox(Value value) |
InvokeStmt |
Jimple.newInvokeStmt(Value op)
Constructs a InvokeStmt(InvokeExpr) grammar chunk.
|
LeExpr |
Jimple.newLeExpr(Value op1,
Value op2)
Constructs a LeExpr(Immediate, Immediate) grammar chunk.
|
LengthExpr |
Jimple.newLengthExpr(Value op)
Constructs a LengthExpr(Immediate) grammar chunk.
|
ValueBox |
Jimple.newLocalBox(Value value) |
LookupSwitchStmt |
Jimple.newLookupSwitchStmt(Value key,
java.util.List<java.lang.Object> lookupValues,
java.util.List<java.lang.Object> targets,
UnitBox defaultTarget) |
LookupSwitchStmt |
Jimple.newLookupSwitchStmt(Value key,
java.util.List lookupValues,
java.util.List targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Immediate, List of Immediate, List of Unit, Stmt) grammar chunk.
|
LtExpr |
Jimple.newLtExpr(Value op1,
Value op2)
Constructs a LtExpr(Immediate, Immediate) grammar chunk.
|
MulExpr |
Jimple.newMulExpr(Value op1,
Value op2)
Constructs a MulExpr(Immediate, Immediate) grammar chunk.
|
NeExpr |
Jimple.newNeExpr(Value op1,
Value op2)
Constructs a NeExpr(Immediate, Immediate) grammar chunk.
|
NegExpr |
Jimple.newNegExpr(Value op)
Constructs a NegExpr(Immediate, Immediate) grammar chunk.
|
NewArrayExpr |
Jimple.newNewArrayExpr(Type type,
Value size)
Constructs a NewArrayExpr(Type, Immediate) grammar chunk.
|
OrExpr |
Jimple.newOrExpr(Value op1,
Value op2)
Constructs a OrExpr(Immediate, Immediate) grammar chunk.
|
RemExpr |
Jimple.newRemExpr(Value op1,
Value op2)
Constructs a RemExpr(Immediate, Immediate) grammar chunk.
|
RetStmt |
Jimple.newRetStmt(Value stmtAddress)
Constructs a RetStmt(Local) grammar chunk.
|
ReturnStmt |
Jimple.newReturnStmt(Value op)
Constructs a ReturnStmt(Immediate) grammar chunk.
|
ValueBox |
Jimple.newRValueBox(Value value) |
ShlExpr |
Jimple.newShlExpr(Value op1,
Value op2)
Constructs a ShlExpr(Immediate, Immediate) grammar chunk.
|
ShrExpr |
Jimple.newShrExpr(Value op1,
Value op2)
Constructs a ShrExpr(Immediate, Immediate) grammar chunk.
|
SpecialInvokeExpr |
Jimple.newSpecialInvokeExpr(Local base,
SootMethodRef method,
Value arg)
Constructs a NewSpecialInvokeExpr(Local base, SootMethodRef method, List of Immediate) grammar chunk.
|
SpecialInvokeExpr |
Jimple.newSpecialInvokeExpr(Local base,
SootMethodRef method,
Value arg1,
Value arg2)
Constructs a NewSpecialInvokeExpr(Local base, SootMethodRef method, List of Immediate) grammar chunk.
|
StaticInvokeExpr |
Jimple.newStaticInvokeExpr(SootMethodRef method,
Value... args)
Constructs a NewStaticInvokeExpr(ArrayType, List of Immediate) grammar chunk.
|
StaticInvokeExpr |
Jimple.newStaticInvokeExpr(SootMethodRef method,
Value arg1,
Value arg2)
Constructs a NewStaticInvokeExpr(ArrayType, List of Immediate) grammar chunk.
|
SubExpr |
Jimple.newSubExpr(Value op1,
Value op2)
Constructs a SubExpr(Immediate, Immediate) grammar chunk.
|
TableSwitchStmt |
Jimple.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
java.util.List<java.lang.Object> targets,
UnitBox defaultTarget) |
TableSwitchStmt |
Jimple.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
java.util.List targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Immediate, int, int, List of Unit, Stmt) grammar chunk.
|
ThrowStmt |
Jimple.newThrowStmt(Value op)
Constructs a ThrowStmt(Immediate) grammar chunk.
|
UshrExpr |
Jimple.newUshrExpr(Value op1,
Value op2)
Constructs a UshrExpr(Immediate, Immediate) grammar chunk.
|
ValueBox |
Jimple.newVariableBox(Value value) |
VirtualInvokeExpr |
Jimple.newVirtualInvokeExpr(Local base,
SootMethodRef method,
Value arg)
Constructs a NewVirtualInvokeExpr(Local base, SootMethodRef method, List of Immediate) grammar chunk.
|
VirtualInvokeExpr |
Jimple.newVirtualInvokeExpr(Local base,
SootMethodRef method,
Value arg1,
Value arg2)
Constructs a NewVirtualInvokeExpr(Local base, SootMethodRef method, List of Immediate) grammar chunk.
|
XorExpr |
Jimple.newXorExpr(Value op1,
Value op2)
Constructs a XorExpr(Immediate, Immediate) grammar chunk.
|
void |
InvokeExpr.setArg(int index,
Value arg) |
void |
InstanceInvokeExpr.setBase(Value base) |
void |
InstanceFieldRef.setBase(Value base) |
void |
IfStmt.setCondition(Value condition)
condition must be soot.jimple.ConditionExpr
|
void |
ArrayRef.setIndex(Value index) |
void |
InvokeStmt.setInvokeExpr(Value invokeExpr) |
void |
TableSwitchStmt.setKey(Value key) |
void |
LookupSwitchStmt.setKey(Value key) |
void |
AssignStmt.setLeftOp(Value variable) |
void |
UnopExpr.setOp(Value op) |
void |
ThrowStmt.setOp(Value op) |
void |
ReturnStmt.setOp(Value returnValue) |
void |
MonitorStmt.setOp(Value op) |
void |
InstanceOfExpr.setOp(Value op) |
void |
ExitMonitorStmt.setOp(Value op) |
void |
EnterMonitorStmt.setOp(Value op) |
void |
CastExpr.setOp(Value op) |
void |
BinopExpr.setOp1(Value op1) |
void |
BinopExpr.setOp2(Value op2) |
void |
AssignStmt.setRightOp(Value rvalue) |
void |
NewMultiArrayExpr.setSize(int index,
Value size) |
void |
NewArrayExpr.setSize(Value size) |
void |
RetStmt.setStmtAddress(Value stmtAddress) |
boolean |
NaiveSideEffectTester.unitCanReadFrom(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
NaiveSideEffectTester.unitCanWriteTo(Unit u,
Value v) |
| Modifier and Type | Method and Description |
|---|---|
Value |
AbstractInvokeExpr.getArg(int index) |
Value |
JArrayRef.getBase() |
Value |
AbstractInstanceInvokeExpr.getBase() |
Value |
AbstractInstanceFieldRef.getBase() |
Value |
JDynamicInvokeExpr.getBootstrapArg(int index) |
Value |
JIfStmt.getCondition() |
Value |
JArrayRef.getIndex() |
Value |
JTableSwitchStmt.getKey() |
Value |
JLookupSwitchStmt.getKey() |
Value |
AbstractDefinitionStmt.getLeftOp() |
Value |
JThrowStmt.getOp() |
Value |
JReturnStmt.getOp() |
Value |
JExitMonitorStmt.getOp() |
Value |
JEnterMonitorStmt.getOp() |
Value |
AbstractUnopExpr.getOp() |
Value |
AbstractInstanceOfExpr.getOp() |
Value |
AbstractCastExpr.getOp() |
Value |
AbstractBinopExpr.getOp1() |
Value |
AbstractBinopExpr.getOp2() |
Value |
AbstractDefinitionStmt.getRightOp() |
Value |
AbstractNewArrayExpr.getSize() |
Value |
AbstractNewMultiArrayExpr.getSize(int index) |
Value |
JRetStmt.getStmtAddress() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
VariableBox.canContainValue(Value value) |
boolean |
RValueBox.canContainValue(Value value) |
boolean |
JimpleLocalBox.canContainValue(Value value) |
boolean |
InvokeExprBox.canContainValue(Value value) |
boolean |
ImmediateBox.canContainValue(Value value) |
boolean |
IdentityRefBox.canContainValue(Value value) |
boolean |
ConditionExprBox.canContainValue(Value value) |
void |
AbstractInvokeExpr.setArg(int index,
Value arg) |
void |
AbstractInstanceInvokeExpr.setBase(Value base) |
void |
AbstractInstanceFieldRef.setBase(Value base) |
void |
JIfStmt.setCondition(Value condition) |
void |
JArrayRef.setIndex(Value index) |
void |
JInvokeStmt.setInvokeExpr(Value invokeExpr) |
void |
JTableSwitchStmt.setKey(Value key) |
void |
JLookupSwitchStmt.setKey(Value key) |
void |
JIdentityStmt.setLeftOp(Value local) |
void |
JAssignStmt.setLeftOp(Value variable) |
void |
JThrowStmt.setOp(Value op) |
void |
JReturnStmt.setOp(Value returnValue) |
void |
JExitMonitorStmt.setOp(Value op) |
void |
JEnterMonitorStmt.setOp(Value op) |
void |
AbstractUnopExpr.setOp(Value op) |
void |
AbstractInstanceOfExpr.setOp(Value op) |
void |
AbstractCastExpr.setOp(Value op) |
void |
AbstractBinopExpr.setOp1(Value op1) |
void |
AbstractBinopExpr.setOp2(Value op2) |
void |
JIdentityStmt.setRightOp(Value identityRef) |
void |
JAssignStmt.setRightOp(Value rvalue) |
void |
AbstractNewMultiArrayExpr.setSize(int index,
Value size) |
void |
AbstractNewArrayExpr.setSize(Value size) |
void |
JRetStmt.setStmtAddress(Value stmtAddress) |
| Constructor and Description |
|---|
AbstractJimpleBinopExpr(Value op1,
Value op2) |
AbstractJimpleIntBinopExpr(Value op1,
Value op2) |
AbstractJimpleIntLongBinopExpr(Value op1,
Value op2) |
ConditionExprBox(Value value) |
IdentityRefBox(Value value) |
ImmediateBox(Value value) |
InvokeExprBox(Value value) |
JAddExpr(Value op1,
Value op2) |
JAndExpr(Value op1,
Value op2) |
JArrayRef(Value base,
Value index) |
JAssignStmt(Value variable,
Value rvalue) |
JCastExpr(Value op,
Type type) |
JCmpExpr(Value op1,
Value op2) |
JCmpgExpr(Value op1,
Value op2) |
JCmplExpr(Value op1,
Value op2) |
JDivExpr(Value op1,
Value op2) |
JEnterMonitorStmt(Value op) |
JEqExpr(Value op1,
Value op2) |
JExitMonitorStmt(Value op) |
JGeExpr(Value op1,
Value op2) |
JGtExpr(Value op1,
Value op2) |
JIdentityStmt(Value local,
Value identityValue) |
JIfStmt(Value condition,
Unit target) |
JIfStmt(Value condition,
UnitBox target) |
JimpleLocalBox(Value value) |
JInstanceFieldRef(Value base,
SootFieldRef fieldRef) |
JInstanceOfExpr(Value op,
Type checkType) |
JInterfaceInvokeExpr(Value base,
SootMethodRef methodRef,
java.util.List args) |
JInvokeStmt(Value c) |
JLeExpr(Value op1,
Value op2) |
JLengthExpr(Value op) |
JLookupSwitchStmt(Value key,
java.util.List<java.lang.Object> lookupValues,
java.util.List<java.lang.Object> targets,
UnitBox defaultTarget)
Constructs a new JLookupSwitchStmt.
|
JLookupSwitchStmt(Value key,
java.util.List lookupValues,
java.util.List targets,
Unit defaultTarget)
Constructs a new JLookupSwitchStmt.
|
JLtExpr(Value op1,
Value op2) |
JMulExpr(Value op1,
Value op2) |
JNeExpr(Value op1,
Value op2) |
JNegExpr(Value op) |
JNewArrayExpr(Type type,
Value size) |
JOrExpr(Value op1,
Value op2) |
JRemExpr(Value op1,
Value op2) |
JRetStmt(Value stmtAddress) |
JReturnStmt(Value returnValue) |
JShlExpr(Value op1,
Value op2) |
JShrExpr(Value op1,
Value op2) |
JSubExpr(Value op1,
Value op2) |
JTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
java.util.List<java.lang.Object> targets,
UnitBox defaultTarget) |
JTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
java.util.List targets,
Unit defaultTarget) |
JThrowStmt(Value op) |
JUshrExpr(Value op1,
Value op2) |
JVirtualInvokeExpr(Value base,
SootMethodRef methodRef,
java.util.List args) |
JXorExpr(Value op1,
Value op2) |
RValueBox(Value value) |
VariableBox(Value value) |
| Constructor and Description |
|---|
JDynamicInvokeExpr(SootMethodRef bootstrapMethodRef,
java.util.List<Value> bootstrapArgs,
SootMethodRef methodRef,
java.util.List<Value> methodArgs) |
JDynamicInvokeExpr(SootMethodRef bootstrapMethodRef,
java.util.List<Value> bootstrapArgs,
SootMethodRef methodRef,
java.util.List<Value> methodArgs) |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<Unit,java.util.HashSet<Value>> |
BranchedRefVarsAnalysis.unitToAnalyzedChecksSet
Deprecated.
|
protected java.util.Map<Unit,java.util.HashSet<Value>> |
BranchedRefVarsAnalysis.unitToArrayRefChecksSet
Deprecated.
|
protected java.util.Map<Unit,java.util.HashSet<Value>> |
BranchedRefVarsAnalysis.unitToInstanceFieldRefChecksSet
Deprecated.
|
protected java.util.Map<Unit,java.util.HashSet<Value>> |
BranchedRefVarsAnalysis.unitToInstanceInvokeExprChecksSet
Deprecated.
|
protected java.util.Map<Unit,java.util.HashSet<Value>> |
BranchedRefVarsAnalysis.unitToLengthExprChecksSet
Deprecated.
|
protected java.util.HashMap<Value,java.lang.Integer> |
NullnessAnalysis.valueToIndex |
| Modifier and Type | Method and Description |
|---|---|
int |
BranchedRefVarsAnalysis.anyRefInfo(Value r,
FlowSet f)
Deprecated.
|
int |
NullnessAnalysis.AnalysisInfo.get(Value key) |
EquivalentValue |
BranchedRefVarsAnalysis.getEquivalentValue(Value v)
Deprecated.
|
protected boolean |
NullnessAssumptionAnalysis.isAlwaysNonNull(Value v)
This can be overridden by sublasses to mark a certain value
as constantly non-null.
|
protected boolean |
NullnessAnalysis.isAlwaysNonNull(Value v)
This can be overwritten by sublasses to mark a certain value
as constantly non-null.
|
protected boolean |
BranchedRefVarsAnalysis.isAlwaysNonNull(Value ro)
Deprecated.
|
void |
NullnessAnalysis.AnalysisInfo.put(Value key,
int val) |
protected int |
BranchedRefVarsAnalysis.refInfo(Value r,
FlowSet fs)
Deprecated.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractDataSource |
class |
CachedEquivalentValue
An
EquivalentValue with cached hash code and equals-relation. |
class |
FakeJimpleLocal |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.WeakHashMap<Value,java.lang.Boolean> |
CachedEquivalentValue.isEquivalent |
| Modifier and Type | Method and Description |
|---|---|
Value |
SmartMethodLocalObjectsAnalysis.getThisLocal() |
Value |
SmartMethodInfoFlowAnalysis.getThisLocal() |
Value |
SimpleMethodInfoFlowAnalysis.getThisLocal() |
| Modifier and Type | Method and Description |
|---|---|
void |
SimpleMethodInfoFlowAnalysis.addToEntryInitialFlow(Value source,
Value sink) |
void |
SimpleMethodInfoFlowAnalysis.addToNewInitialFlow(Value source,
Value sink) |
protected void |
SmartMethodInfoFlowAnalysis.handleFlowsToDataStructure(Value base,
Value source) |
protected void |
SimpleMethodInfoFlowAnalysis.handleFlowsToDataStructure(Value base,
Value initialSource,
FlowSet fs) |
protected void |
SmartMethodInfoFlowAnalysis.handleFlowsToValue(Value sink,
Value source) |
protected void |
SimpleMethodInfoFlowAnalysis.handleFlowsToValue(Value sink,
Value initialSource,
FlowSet fs) |
protected void |
SmartMethodInfoFlowAnalysis.handleInnerField(Value innerFieldRef) |
boolean |
SimpleMethodLocalObjectsAnalysis.isInterestingSink(Value sink) |
boolean |
SimpleMethodInfoFlowAnalysis.isInterestingSink(Value sink) |
boolean |
SimpleMethodLocalObjectsAnalysis.isInterestingSource(Value source) |
boolean |
SimpleMethodInfoFlowAnalysis.isInterestingSource(Value source) |
static boolean |
SmartMethodLocalObjectsAnalysis.isObjectLocal(InfoFlowAnalysis dfa,
SootMethod method,
CallLocalityContext context,
Value local) |
boolean |
SimpleMethodLocalObjectsAnalysis.isObjectLocal(Value local) |
boolean |
SmartMethodLocalObjectsAnalysis.isObjectLocal(Value local,
CallLocalityContext context) |
boolean |
ClassLocalObjectsAnalysis.isObjectLocal(Value localOrRef,
SootMethod sm) |
boolean |
LocalObjectsAnalysis.isObjectLocalToContext(Value localOrRef,
SootMethod sm,
SootMethod context) |
boolean |
LocalObjectsAnalysis.isObjectLocalToParent(Value localOrRef,
SootMethod sm) |
boolean |
SimpleMethodInfoFlowAnalysis.isTrackableSink(Value sink) |
boolean |
SimpleMethodInfoFlowAnalysis.isTrackableSource(Value source) |
| Constructor and Description |
|---|
CachedEquivalentValue(Value e) |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Set<Value> |
LocalMustAliasAnalysis.localsAndFieldRefs
The set of all local variables and field references that we track.
|
protected java.util.Map<Unit,java.util.Map<Value,java.lang.Integer>> |
LocalMustAliasAnalysis.mergePointToValueToNumber
maps from a merge point (a unit) and a value to the unique value number of that value at this point
|
protected java.util.Map<Value,java.lang.Integer> |
LocalMustAliasAnalysis.rhsToNumber
maps from right-hand side expressions (non-locals) to value numbers
|
| Modifier and Type | Method and Description |
|---|---|
protected java.util.HashMap<Value,java.lang.Object> |
LocalMustAliasAnalysis.entryInitialFlow()
Initial most conservative value: has to be
UNKNOWN (top). |
protected java.util.HashMap<Value,java.lang.Object> |
LocalMustAliasAnalysis.newInitialFlow()
Initial bottom value: objects have no definitions.
|
| Modifier and Type | Method and Description |
|---|---|
protected RWSet |
SideEffectAnalysis.addValue(Value v,
SootMethod m,
Stmt s) |
boolean |
PASideEffectTester.unitCanReadFrom(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
PASideEffectTester.unitCanWriteTo(Unit u,
Value v)
Returns true if the unit can read from v.
|
protected boolean |
PASideEffectTester.valueTouchesRWSet(RWSet s,
Value v,
java.util.List boxes) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
LocalMustAliasAnalysis.copy(java.util.HashMap<Value,java.lang.Object> sourceMap,
java.util.HashMap<Value,java.lang.Object> destMap) |
protected void |
LocalMustAliasAnalysis.copy(java.util.HashMap<Value,java.lang.Object> sourceMap,
java.util.HashMap<Value,java.lang.Object> destMap) |
protected void |
LocalMustAliasAnalysis.flowThrough(java.util.HashMap<Value,java.lang.Object> in,
Unit u,
java.util.HashMap<Value,java.lang.Object> out) |
protected void |
LocalMustAliasAnalysis.flowThrough(java.util.HashMap<Value,java.lang.Object> in,
Unit u,
java.util.HashMap<Value,java.lang.Object> out) |
protected void |
LocalMustAliasAnalysis.merge(java.util.HashMap<Value,java.lang.Object> in1,
java.util.HashMap<Value,java.lang.Object> in2,
java.util.HashMap<Value,java.lang.Object> out) |
protected void |
LocalMustAliasAnalysis.merge(java.util.HashMap<Value,java.lang.Object> in1,
java.util.HashMap<Value,java.lang.Object> in2,
java.util.HashMap<Value,java.lang.Object> out) |
protected void |
LocalMustAliasAnalysis.merge(java.util.HashMap<Value,java.lang.Object> in1,
java.util.HashMap<Value,java.lang.Object> in2,
java.util.HashMap<Value,java.lang.Object> out) |
protected void |
LocalMustAliasAnalysis.merge(Unit succUnit,
java.util.HashMap<Value,java.lang.Object> inMap1,
java.util.HashMap<Value,java.lang.Object> inMap2,
java.util.HashMap<Value,java.lang.Object> outMap) |
protected void |
LocalMustAliasAnalysis.merge(Unit succUnit,
java.util.HashMap<Value,java.lang.Object> inMap1,
java.util.HashMap<Value,java.lang.Object> inMap2,
java.util.HashMap<Value,java.lang.Object> outMap) |
protected void |
LocalMustAliasAnalysis.merge(Unit succUnit,
java.util.HashMap<Value,java.lang.Object> inMap1,
java.util.HashMap<Value,java.lang.Object> inMap2,
java.util.HashMap<Value,java.lang.Object> outMap) |
| Modifier and Type | Method and Description |
|---|---|
static Value |
Evaluator.getConstantValueOf(Value op)
Returns the constant value of
op if it is easy
to find the constant value; else returns null. |
| Modifier and Type | Method and Description |
|---|---|
static Value |
Evaluator.getConstantValueOf(Value op)
Returns the constant value of
op if it is easy
to find the constant value; else returns null. |
static boolean |
Evaluator.isValueConstantValued(Value op) |
| Modifier and Type | Method and Description |
|---|---|
static Value |
SootFilter.binop(Value val)
only lets binary expression through.
|
static Value |
SootFilter.binopRhs(Unit unit)
only lets binary RHS through.
|
static Value |
SootFilter.concreteRef(Value val)
only lets concrete references through.
|
static Value |
SootFilter.getEquivalentValueRoot(Value val)
returns the Value of an EquivalentValue.
|
static Value |
SootFilter.local(Value val)
filters out Locals.
returns null if val is null. |
static Value |
SootFilter.noExceptionThrowing(Value val)
filters out Exception-throwing Values.
|
static Value |
SootFilter.noExceptionThrowingRhs(Unit unit)
filters out RHS that don't throw any exception.
|
static Value |
SootFilter.noInvoke(Value val)
filters out Invokes.
returns null if val is null. |
static Value |
SootFilter.noInvokeRhs(Unit unit)
filters out RHS that aren't invokes.
|
static Value |
SootFilter.noLocal(Value val)
only lets non-Locals through.
returns null if val is null. |
static Value |
SootFilter.rhs(Unit unit)
filters out the RHS of an assignmentStmt.
|
| Modifier and Type | Method and Description |
|---|---|
static Value |
SootFilter.binop(Value val)
only lets binary expression through.
|
static Value |
SootFilter.concreteRef(Value val)
only lets concrete references through.
|
static EquivalentValue |
SootFilter.equiVal(Value val)
wraps a value into a EquivalentValue.
|
static Value |
SootFilter.getEquivalentValueRoot(Value val)
returns the Value of an EquivalentValue.
|
static boolean |
SootFilter.isInvoke(Value val)
returns true, if
val is an invoke. |
static boolean |
SootFilter.isLocal(Value val)
returns true, if
val is a Local. |
static Value |
SootFilter.local(Value val)
filters out Locals.
returns null if val is null. |
static Value |
SootFilter.noExceptionThrowing(Value val)
filters out Exception-throwing Values.
|
static Value |
SootFilter.noInvoke(Value val)
filters out Invokes.
returns null if val is null. |
static Value |
SootFilter.noLocal(Value val)
only lets non-Locals through.
returns null if val is null. |
static boolean |
SootFilter.throwsException(Value val)
a (probably) conservative way of telling, if a Value throws an exception
or not.
|
| Modifier and Type | Method and Description |
|---|---|
Value |
IUseVisitor.visit(Value op,
Type useType,
Stmt stmt) |
| Modifier and Type | Method and Description |
|---|---|
static Type |
AugEvalFunction.eval_(Typing tg,
Value expr,
Stmt stmt,
JimpleBody jb) |
java.util.Collection<Type> |
IEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
java.util.Collection<Type> |
AugEvalFunction.eval(Typing tg,
Value expr,
Stmt stmt) |
Value |
IUseVisitor.visit(Value op,
Type useType,
Stmt stmt) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
ValueUnitPair.canContainValue(Value value) |
| Constructor and Description |
|---|
ValueUnitPair(Value value,
Unit unit)
Constructs a ValueUnitPair from a Unit object and a Value object.
|
Copyright © 2012-2019 RoboVM AB. All Rights Reserved.