public abstract class NativeHelper
extends java.lang.Object
Constructor and Description |
---|
NativeHelper() |
Modifier and Type | Method and Description |
---|---|
ReferenceVariable |
arrayElementOf(ReferenceVariable base)
Returns a reference variable representing the array element of
this variable.
|
protected abstract ReferenceVariable |
arrayElementOfImpl(ReferenceVariable base) |
void |
assign(ReferenceVariable lhs,
ReferenceVariable rhs)
Regular assignment such as "a = b".
|
protected abstract void |
assignImpl(ReferenceVariable lhs,
ReferenceVariable rhs)
Sub classes should implement both.
|
void |
assignObjectTo(ReferenceVariable lhs,
AbstractObject obj)
Assignment of an abstract object to the variable, such as
" a = new A()", which is considered to add a target in a's
points-to set.
|
protected abstract void |
assignObjectToImpl(ReferenceVariable lhs,
AbstractObject obj) |
ReferenceVariable |
cloneObject(ReferenceVariable source)
Returns a variable which has the effect of cloning.
|
protected abstract ReferenceVariable |
cloneObjectImpl(ReferenceVariable source) |
ReferenceVariable |
newInstanceOf(ReferenceVariable cls)
Returns a variable which carries an allocation site with
the least type (an artificial type, subtype of any other types,
which means such type info is useless for resolving invocation
targets).
|
protected abstract ReferenceVariable |
newInstanceOfImpl(ReferenceVariable cls) |
ReferenceVariable |
staticField(java.lang.String className,
java.lang.String fieldName)
Returns a reference variable representing a static Java field.
|
protected abstract ReferenceVariable |
staticFieldImpl(java.lang.String className,
java.lang.String fieldName) |
ReferenceVariable |
tempField(java.lang.String fieldsig)
Returns a variable representing a non-existing Java field, used by
e.g., java.lang.Class: getSingers, setSigners
java.lang.Class: getProtectionDomain0, setProtectionDomain0
To simplify simulation, the temporary field variable is like a
static field.
|
protected abstract ReferenceVariable |
tempFieldImpl(java.lang.String fieldsig) |
ReferenceVariable |
tempLocalVariable(SootMethod method) |
protected abstract ReferenceVariable |
tempLocalVariableImpl(SootMethod method) |
ReferenceVariable |
tempVariable()
Make a temporary variable.
|
protected abstract ReferenceVariable |
tempVariableImpl() |
void |
throwException(AbstractObject obj)
Throw of an abstract object as an exception.
|
protected abstract void |
throwExceptionImpl(AbstractObject obj) |
public void assign(ReferenceVariable lhs, ReferenceVariable rhs)
public void assignObjectTo(ReferenceVariable lhs, AbstractObject obj)
public void throwException(AbstractObject obj)
public ReferenceVariable arrayElementOf(ReferenceVariable base)
public ReferenceVariable cloneObject(ReferenceVariable source)
public ReferenceVariable newInstanceOf(ReferenceVariable cls)
public ReferenceVariable staticField(java.lang.String className, java.lang.String fieldName)
field,
- must be a static fieldpublic ReferenceVariable tempField(java.lang.String fieldsig)
public ReferenceVariable tempVariable()
public ReferenceVariable tempLocalVariable(SootMethod method)
protected abstract void assignImpl(ReferenceVariable lhs, ReferenceVariable rhs)
protected abstract void assignObjectToImpl(ReferenceVariable lhs, AbstractObject obj)
protected abstract void throwExceptionImpl(AbstractObject obj)
protected abstract ReferenceVariable arrayElementOfImpl(ReferenceVariable base)
protected abstract ReferenceVariable cloneObjectImpl(ReferenceVariable source)
protected abstract ReferenceVariable newInstanceOfImpl(ReferenceVariable cls)
protected abstract ReferenceVariable staticFieldImpl(java.lang.String className, java.lang.String fieldName)
protected abstract ReferenceVariable tempFieldImpl(java.lang.String fieldsig)
protected abstract ReferenceVariable tempVariableImpl()
protected abstract ReferenceVariable tempLocalVariableImpl(SootMethod method)