public class StmtVisitor extends Object implements StmtSwitch
Switchable.apply(soot.util.Switch) with this visitor to add statements and #getFinalInsns() to get the
final dexlib instructions.intermediate representation of an instruction,
final representation of an instruction| Modifier and Type | Field and Description |
|---|---|
protected ConstantVisitor |
constantV |
protected ExprVisitor |
exprV |
protected RegisterAllocator |
regAlloc |
| Constructor and Description |
|---|
StmtVisitor(SootMethod belongingMethod,
DexArrayInitDetector arrayInitDetector) |
protected ConstantVisitor constantV
protected RegisterAllocator regAlloc
protected ExprVisitor exprV
public StmtVisitor(SootMethod belongingMethod, DexArrayInitDetector arrayInitDetector)
protected void setLastReturnTypeDescriptor(String typeDescriptor)
protected SootClass getBelongingClass()
public Stmt getStmtForInstruction(org.jf.dexlib2.iface.instruction.Instruction instruction)
public Insn getInsnForInstruction(org.jf.dexlib2.iface.instruction.Instruction instruction)
public Map<org.jf.dexlib2.iface.instruction.Instruction,LocalRegisterAssignmentInformation> getInstructionRegisterMap()
public List<LocalRegisterAssignmentInformation> getParameterInstructionsList()
public Map<org.jf.dexlib2.iface.instruction.Instruction,AbstractPayload> getInstructionPayloadMap()
public int getInstructionCount()
protected void beginNewStmt(Stmt s)
public List<org.jf.dexlib2.builder.BuilderInstruction> getRealInsns(LabelAssigner labelAssigner)
public void fakeNewInsn(Stmt s, Insn insn, org.jf.dexlib2.iface.instruction.Instruction instruction)
protected int getRegisterCount()
public void defaultCase(Object o)
defaultCase in interface StmtSwitchpublic void caseBreakpointStmt(BreakpointStmt stmt)
caseBreakpointStmt in interface StmtSwitchpublic void caseNopStmt(NopStmt stmt)
caseNopStmt in interface StmtSwitchpublic void caseRetStmt(RetStmt stmt)
caseRetStmt in interface StmtSwitchpublic void caseEnterMonitorStmt(EnterMonitorStmt stmt)
caseEnterMonitorStmt in interface StmtSwitchpublic void caseExitMonitorStmt(ExitMonitorStmt stmt)
caseExitMonitorStmt in interface StmtSwitchpublic void caseThrowStmt(ThrowStmt stmt)
caseThrowStmt in interface StmtSwitchpublic void caseAssignStmt(AssignStmt stmt)
caseAssignStmt in interface StmtSwitchpublic void caseInvokeStmt(InvokeStmt stmt)
caseInvokeStmt in interface StmtSwitchpublic void caseReturnVoidStmt(ReturnVoidStmt stmt)
caseReturnVoidStmt in interface StmtSwitchpublic void caseReturnStmt(ReturnStmt stmt)
caseReturnStmt in interface StmtSwitchpublic void caseIdentityStmt(IdentityStmt stmt)
caseIdentityStmt in interface StmtSwitchpublic void caseGotoStmt(GotoStmt stmt)
caseGotoStmt in interface StmtSwitchpublic void caseLookupSwitchStmt(LookupSwitchStmt stmt)
caseLookupSwitchStmt in interface StmtSwitchpublic void caseTableSwitchStmt(TableSwitchStmt stmt)
caseTableSwitchStmt in interface StmtSwitchpublic void caseIfStmt(IfStmt stmt)
caseIfStmt in interface StmtSwitchpublic void preAllocateMonitorConsts(Set<ClassConstant> monitorConsts)
monitorConsts - The set of monitor constants fow which to assign fixed registersCopyright © 2020 Soot OSS. All rights reserved.