public class LoopKillAndroidModel extends LoopAndroidModel
This variant adds a nother loop to the LoopAndroidModel. This additional loop emulates the start of an Application with a savedIstanceState:
When memory on a device gets short Apps may be removed from memory. When they are needed again they get started using that savedIstanceState.
LoopAndroidModelbody, entryPoints, insts, paramManager| Constructor and Description |
|---|
LoopKillAndroidModel(com.ibm.wala.ipa.summaries.VolatileMethodSummary body,
com.ibm.wala.util.ssa.TypeSafeInstructionFactory insts,
com.ibm.wala.util.ssa.SSAValueManager paramManager,
java.lang.Iterable<? extends com.ibm.wala.ipa.callgraph.Entrypoint> entryPoints) |
| Modifier and Type | Method and Description |
|---|---|
protected int |
enterAT_FIRST(int PC)
Loop starts here.
|
protected int |
leaveAT_LAST(int PC)
Loops to AT_FIRST.
|
enterAFTER_LOOP, enterSTART_OF_LOOPenterEND_OF_LOOP, enterMULTIPLE_TIMES_IN_LOOPenter, enterAT_LAST, enterBEFORE_LOOP, enterMIDDLE_OF_LOOP, finish, hadSectionSwitch, returnTypesBetweenpublic LoopKillAndroidModel(com.ibm.wala.ipa.summaries.VolatileMethodSummary body,
com.ibm.wala.util.ssa.TypeSafeInstructionFactory insts,
com.ibm.wala.util.ssa.SSAValueManager paramManager,
java.lang.Iterable<? extends com.ibm.wala.ipa.callgraph.Entrypoint> entryPoints)
body - The MethodSummary to add instructions toinsts - Will be used to generate the instructionsprotected int enterAT_FIRST(int PC)
Gets called when Label ExecutionOrder.AT_FIRST got stepped over.
In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.AT_FIRST, int) instead.
Sideeffects: currentSection is updated, instructions are inserted into the body
enterAT_FIRST in class AbstractAndroidModelPC - Program Counter instructions shall be placed at. In most cases you'll simply pass
body.getNextProgramCounter()protected int leaveAT_LAST(int PC)
It inserts a gotoInstruction and fills the space reserved before with actual PhiInstructions
Does not insert any special handling.
Gets called when the model gets finished.
In most cases you don't want to invoke this function directly but to use AbstractAndroidModel.finish(int) instead
Sideeffects: instructions are inserted into the body
leaveAT_LAST in class LoopAndroidModelPC - Program Counter instructions shall be placed at. In most cases you'll simply pass
body.getNextProgramCounter()