Class SequentialAndroidModel
No loops are inserted into the model.
This model should not be particular useful in practice. However it might come in handy for debugging purposes or as a skeleton for an other Model.
- Since:
- 2013-09-18
- Author:
- Tobias Blaschke <code@tobiasblaschke.de>
-
Field Summary
Fields inherited from class com.ibm.wala.dalvik.ipa.callgraph.androidModel.structure.AbstractAndroidModel
body, entryPoints, insts, paramManager
-
Constructor Summary
ConstructorDescriptionSequentialAndroidModel
(VolatileMethodSummary body, TypeSafeInstructionFactory insts, SSAValueManager paramManager, Iterable<? extends Entrypoint> entryPoints) -
Method Summary
Modifier and TypeMethodDescriptionprotected int
enterAFTER_LOOP
(int PC) Does not insert any special handling.protected int
enterAT_FIRST
(int PC) Does not insert any special handling.protected int
enterAT_LAST
(int PC) Does not insert any special handling.protected int
enterBEFORE_LOOP
(int PC) Does not insert any special handling.protected int
enterEND_OF_LOOP
(int PC) Does not insert any special handling.protected int
enterMIDDLE_OF_LOOP
(int PC) Does not insert any special handling.protected int
enterMULTIPLE_TIMES_IN_LOOP
(int PC) Does not insert any special handling.protected int
enterSTART_OF_LOOP
(int PC) Does not insert any special handling.protected int
leaveAT_LAST
(int PC) Does not insert any special handling.Methods inherited from class com.ibm.wala.dalvik.ipa.callgraph.androidModel.structure.AbstractAndroidModel
enter, finish, hadSectionSwitch, returnTypesBetween
-
Constructor Details
-
SequentialAndroidModel
public SequentialAndroidModel(VolatileMethodSummary body, TypeSafeInstructionFactory insts, SSAValueManager paramManager, Iterable<? extends Entrypoint> entryPoints) - Parameters:
body
- The MethodSummary to add instructions toinsts
- Will be used to generate the instructions
-
-
Method Details
-
enterAT_FIRST
protected int enterAT_FIRST(int PC) Does not insert any special handling.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
- Overrides:
enterAT_FIRST
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterBEFORE_LOOP
protected int enterBEFORE_LOOP(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.BEFORE_LOOP got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.BEFORE_LOOP, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterBEFORE_LOOP
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterSTART_OF_LOOP
protected int enterSTART_OF_LOOP(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.START_OF_LOOP got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.START_OF_LOOP, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterSTART_OF_LOOP
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterMIDDLE_OF_LOOP
protected int enterMIDDLE_OF_LOOP(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.MIDDLE_OF_LOOP got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.MIDDLE_OF_LOOP, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterMIDDLE_OF_LOOP
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterMULTIPLE_TIMES_IN_LOOP
protected int enterMULTIPLE_TIMES_IN_LOOP(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.MULTIPLE_TIMES_IN_LOOP got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.MULTIPLE_TIMES_IN_LOOP, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterMULTIPLE_TIMES_IN_LOOP
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterEND_OF_LOOP
protected int enterEND_OF_LOOP(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.END_OF_LOOP got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.END_OF_LOOP, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterEND_OF_LOOP
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterAFTER_LOOP
protected int enterAFTER_LOOP(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.AFTER_LOOP got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.AFTER_LOOP, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterAFTER_LOOP
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
enterAT_LAST
protected int enterAT_LAST(int PC) Does not insert any special handling.Gets called when Label ExecutionOrder.AT_LAST got stepped over.
In most cases you don't want to invoke this function directly but to use
enter(ExecutionOrder.AT_LAST, int)
insteadSideeffects: currentSection is updated, instructions are inserted into the body
- Overrides:
enterAT_LAST
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-
leaveAT_LAST
protected int leaveAT_LAST(int PC) 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)
insteadSideeffects: instructions are inserted into the body
- Overrides:
leaveAT_LAST
in classAbstractAndroidModel
- Parameters:
PC
- Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()- Returns:
- Program Counter after insertion of the code
-