public class DexBody
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
void |
add(Unit u)
Add unit to this body.
|
void |
addDeferredJimplification(DeferableInstruction i)
Add a deferred instruction to this body.
|
void |
addRetype(RetypeableInstruction i)
Add a retypeable instruction to this body.
|
Body |
getBody()
Return the associated JimpleBody.
|
protected CopyPropagator |
getCopyPopagator() |
protected LocalSplitter |
getLocalSplitter() |
Local |
getRegisterLocal(int num)
Return the Local that are associated with the number in the current
register state.
|
Local[] |
getRegisterLocals()
Return the Locals that are associated with the current register state.
|
Local |
getStoreResultLocal() |
protected UnreachableCodeEliminator |
getUnreachableCodeEliminator() |
DexlibAbstractInstruction |
instructionAtAddress(int address)
Return the instruction that is present at the byte code address.
|
java.util.List<DexlibAbstractInstruction> |
instructionsAfter(DexlibAbstractInstruction instruction)
Return the instructions that appear (lexically) after the given
instruction.
|
java.util.List<DexlibAbstractInstruction> |
instructionsBefore(DexlibAbstractInstruction instruction)
Return the instructions that appear (lexically) before the given
instruction.
|
Body |
jimplify(Body b,
SootMethod m)
Return the jimple equivalent of this body.
|
void |
setDanglingInstruction(DanglingInstruction i)
Set a dangling instruction for this body.
|
java.util.Set<Type> |
usedTypes()
Return the types that are used in this body.
|
public java.util.Set<Type> usedTypes()
public void add(Unit u)
u
- Unit to add.public void addDeferredJimplification(DeferableInstruction i)
i
- the deferred instruction.public void addRetype(RetypeableInstruction i)
i
- the retypeable instruction.public Body getBody()
java.lang.RuntimeException
- if no jimplification happened yet.public Local[] getRegisterLocals()
public Local getRegisterLocal(int num) throws InvalidDalvikBytecodeException
num
- the register numberInvalidDalvikBytecodeException
public Local getStoreResultLocal()
public DexlibAbstractInstruction instructionAtAddress(int address)
address
- the byte code address.java.lang.RuntimeException
- if address is not part of this body.public Body jimplify(Body b, SootMethod m)
m
- the SootMethod that contains this bodyprotected LocalSplitter getLocalSplitter()
protected UnreachableCodeEliminator getUnreachableCodeEliminator()
protected CopyPropagator getCopyPopagator()
public void setDanglingInstruction(DanglingInstruction i)
public java.util.List<DexlibAbstractInstruction> instructionsAfter(DexlibAbstractInstruction instruction)
instruction
- the instruction which successors will be returned.public java.util.List<DexlibAbstractInstruction> instructionsBefore(DexlibAbstractInstruction instruction)
instruction
- the instruction which successors will be returned.