public abstract class MethodInvocationInstruction extends DexlibAbstractInstruction implements DanglingInstruction
| Modifier and Type | Field and Description |
|---|---|
protected AssignStmt |
assign |
protected InvokeExpr |
invocation |
codeAddress, instruction, lineNumber, unit| Constructor and Description |
|---|
MethodInvocationInstruction(Instruction instruction,
int codeAddress) |
| Modifier and Type | Method and Description |
|---|---|
protected java.util.List<Local> |
buildParameters(DexBody body,
boolean isStatic)
Build the parameters of this invocation.
|
void |
finalize(DexBody body,
DexlibAbstractInstruction successor)
Finalize this instruction taking the successor into consideration.
|
protected SootMethodRef |
getSootMethodRef()
Return the SootMethodRef for the invoked method.
|
protected SootMethodRef |
getStaticSootMethodRef()
Return the static SootMethodRef for the invoked method.
|
protected MethodReference |
getTargetMethodReference()
Gets a reference to the target method that is invoked
|
protected java.util.List<java.lang.Integer> |
getUsedRegistersNums()
Return the indices used in this instruction.
|
java.util.Set<Type> |
introducedTypes()
Return the types that are be introduced by this instruction.
|
protected boolean |
isUsedAsFloatingPoint(DexBody body,
int register,
boolean isStatic)
Determine if register is used as floating point.
|
protected boolean |
isUsedAsObject(DexBody body,
int register,
boolean isStatic)
Determine if register is used as object.
|
protected void |
jimplifyInterface(DexBody body)
Executes the "jimplify" operation for an interface invocation
|
protected void |
jimplifySpecial(DexBody body)
Executes the "jimplify" operation for a special invocation
|
protected void |
jimplifyStatic(DexBody body)
Executes the "jimplify" operation for a static invocation
|
protected void |
jimplifyVirtual(DexBody body)
Executes the "jimplify" operation for a virtual invocation
|
addTags, getInstruction, getLineNumber, getUnit, getUsedRegistersNums, getUsedRegistersNums, jimplify, setLineNumber, setUnitprotected InvokeExpr invocation
protected AssignStmt assign
public MethodInvocationInstruction(Instruction instruction,
int codeAddress)
public void finalize(DexBody body, DexlibAbstractInstruction successor)
DanglingInstructionfinalize in interface DanglingInstructionbody - to finalize intosuccessor - the direct successor of this instructionpublic java.util.Set<Type> introducedTypes()
DexlibAbstractInstructionintroducedTypes in class DexlibAbstractInstructionprotected boolean isUsedAsFloatingPoint(DexBody body, int register, boolean isStatic)
isStatic - if this method is staticprotected boolean isUsedAsObject(DexBody body, int register, boolean isStatic)
isStatic - if this method is staticprotected SootMethodRef getSootMethodRef()
protected SootMethodRef getStaticSootMethodRef()
protected MethodReference getTargetMethodReference()
protected java.util.List<Local> buildParameters(DexBody body, boolean isStatic)
body - the body to build for and intoisStatic - if method is staticprotected java.util.List<java.lang.Integer> getUsedRegistersNums()
protected void jimplifyVirtual(DexBody body)
protected void jimplifyInterface(DexBody body)
protected void jimplifySpecial(DexBody body)
protected void jimplifyStatic(DexBody body)