soot
Interface Unit
- All Superinterfaces:
- Host, java.io.Serializable, Switchable
- All Known Subinterfaces:
- AddInst, AndInst, ArrayLengthInst, ArrayReadInst, ArrayWriteInst, AssignStmt, BreakpointStmt, CmpgInst, CmpInst, CmplInst, DefinitionStmt, DivInst, Dup1_x1Inst, Dup1_x2Inst, Dup1Inst, Dup2_x1Inst, Dup2_x2Inst, Dup2Inst, DupInst, EnterMonitorInst, EnterMonitorStmt, ExitMonitorInst, ExitMonitorStmt, FieldArgInst, FieldGetInst, FieldPutInst, GotoInst, GotoStmt, IdentityInst, IdentityStmt, IdentityUnit, IfCmpEqInst, IfCmpGeInst, IfCmpGtInst, IfCmpLeInst, IfCmpLtInst, IfCmpNeInst, IfEqInst, IfGeInst, IfGtInst, IfLeInst, IfLtInst, IfNeInst, IfNonNullInst, IfNullInst, IfStmt, IncInst, Inst, InstanceCastInst, InstanceOfInst, InterfaceInvokeInst, InvokeStmt, LoadInst, LookupSwitchInst, LookupSwitchStmt, MethodArgInst, MonitorStmt, MulInst, NegInst, NewArrayInst, NewInst, NewMultiArrayInst, NoArgInst, NopInst, NopStmt, OpTypeArgInst, OrInst, PopInst, PrimitiveCastInst, PushInst, RemInst, RetInst, RetStmt, ReturnInst, ReturnStmt, ReturnVoidInst, ReturnVoidStmt, ShlInst, ShrInst, SpecialInvokeInst, StaticGetInst, StaticInvokeInst, StaticPutInst, Stmt, StoreInst, SubInst, SwapInst, TableSwitchInst, TableSwitchStmt, TargetArgInst, ThrowInst, ThrowStmt, UshrInst, VirtualInvokeInst, XorInst
- All Known Implementing Classes:
- AbstractDefinitionStmt, AbstractInst, AbstractStmt, AbstractUnit, BAddInst, BAndInst, BArrayLengthInst, BArrayReadInst, BArrayWriteInst, BCmpgInst, BCmpInst, BCmplInst, BDivInst, BDup1_x1Inst, BDup1Inst, BDup2Inst, BDupInst, BEnterMonitorInst, BExitMonitorInst, BFieldGetInst, BFieldPutInst, BGotoInst, BIdentityInst, BIfCmpEqInst, BIfCmpGeInst, BIfCmpGtInst, BIfCmpLeInst, BIfCmpLtInst, BIfCmpNeInst, BIfEqInst, BIfGeInst, BIfGtInst, BIfLeInst, BIfLtInst, BIfNeInst, BIfNonNullInst, BIfNullInst, BIncInst, BInstanceCastInst, BInstanceOfInst, BInterfaceInvokeInst, BLoadInst, BLookupSwitchInst, BMulInst, BNegInst, BNewArrayInst, BNewInst, BNewMultiArrayInst, BNopInst, BOrInst, BPopInst, BPrimitiveCastInst, BPushInst, BRemInst, BReturnInst, BReturnVoidInst, BShlInst, BShrInst, BSpecialInvokeInst, BStaticGetInst, BStaticInvokeInst, BStaticPutInst, BStoreInst, BSubInst, BSwapInst, BTableSwitchInst, BThrowInst, BUshrInst, BVirtualInvokeInst, BXorInst, JAssignStmt, JBreakpointStmt, JEnterMonitorStmt, JExitMonitorStmt, JGotoStmt, JIdentityStmt, JIfStmt, JInvokeStmt, JLookupSwitchStmt, JNopStmt, JRetStmt, JReturnStmt, JReturnVoidStmt, JTableSwitchStmt, JThrowStmt
- public interface Unit
- extends Switchable, Host, java.io.Serializable
A code fragment (eg Stmt or Inst), used within Body
classes. Intermediate representations must use an implementation
of Unit for their code. In general, a unit denotes
some sort of unit for execution.
Method Summary |
void |
addBoxPointingToThis(UnitBox b)
Adds a box to the list returned by getBoxesPointingToThis. |
boolean |
branches()
Returns true if execution after this statement does not necessarily continue at the following statement. |
void |
clearUnitBoxes()
Clears any pointers to and from this Unit's UnitBoxes. |
java.lang.Object |
clone()
|
boolean |
fallsThrough()
Returns true if execution after this statement may continue at the following statement. |
java.util.List |
getBoxesPointingToThis()
Returns a list of Boxes pointing to this Unit. |
java.util.List |
getDefBoxes()
Returns a list of Boxes containing Values defined in this Unit. |
java.util.List |
getUnitBoxes()
Returns a list of Boxes containing Units defined in this Unit; typically
branch targets. |
java.util.List |
getUseAndDefBoxes()
Returns a list of Boxes containing any Value either used or defined
in this Unit. |
java.util.List |
getUseBoxes()
Returns a list of Boxes containing Values used in this Unit. |
void |
redirectJumpsToThisTo(Unit newLocation)
Redirects jumps to this Unit to newLocation. |
void |
removeBoxPointingToThis(UnitBox b)
Removes a box from the list returned by getBoxesPointingToThis. |
void |
toString(UnitPrinter up)
|
getUseBoxes
public java.util.List getUseBoxes()
- Returns a list of Boxes containing Values used in this Unit.
getDefBoxes
public java.util.List getDefBoxes()
- Returns a list of Boxes containing Values defined in this Unit.
getUnitBoxes
public java.util.List getUnitBoxes()
- Returns a list of Boxes containing Units defined in this Unit; typically
branch targets.
getBoxesPointingToThis
public java.util.List getBoxesPointingToThis()
- Returns a list of Boxes pointing to this Unit.
addBoxPointingToThis
public void addBoxPointingToThis(UnitBox b)
- Adds a box to the list returned by getBoxesPointingToThis.
removeBoxPointingToThis
public void removeBoxPointingToThis(UnitBox b)
- Removes a box from the list returned by getBoxesPointingToThis.
clearUnitBoxes
public void clearUnitBoxes()
- Clears any pointers to and from this Unit's UnitBoxes.
getUseAndDefBoxes
public java.util.List getUseAndDefBoxes()
- Returns a list of Boxes containing any Value either used or defined
in this Unit.
clone
public java.lang.Object clone()
fallsThrough
public boolean fallsThrough()
- Returns true if execution after this statement may continue at the following statement.
GotoStmt will return false but IfStmt will return true.
branches
public boolean branches()
- Returns true if execution after this statement does not necessarily continue at the following statement. GotoStmt and IfStmt will both return true.
toString
public void toString(UnitPrinter up)
redirectJumpsToThisTo
public void redirectJumpsToThisTo(Unit newLocation)
- Redirects jumps to this Unit to newLocation. In general, you shouldn't
have to use this directly.
- See Also:
PatchingChain.getNonPatchingChain()
,
soot.shimple.Shimple#redirectToPreds(Chain, Unit)
,
Shimple.redirectPointers(Unit, Unit)