Package com.ibm.wala.dalvik.ssa
Class AbstractIntRegisterMachine.MachineState
- java.lang.Object
-
- com.ibm.wala.util.graph.impl.NodeWithNumber
-
- com.ibm.wala.fixpoint.AbstractVariable<AbstractIntRegisterMachine.MachineState>
-
- com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine.MachineState
-
- All Implemented Interfaces:
IVariable<AbstractIntRegisterMachine.MachineState>,INodeWithNumber
- Enclosing class:
- AbstractIntRegisterMachine
public class AbstractIntRegisterMachine.MachineState extends AbstractVariable<AbstractIntRegisterMachine.MachineState>
Representation of the state of the JVM stack machine at some program point.
-
-
Constructor Summary
Constructors Constructor Description MachineState(DexCFG.BasicBlock bb)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidallocateLocals()voidcopyState(AbstractIntRegisterMachine.MachineState other)Set this variable to have the same state as another oneAbstractIntRegisterMachine.MachineStateduplicate()I'm not using clone because I don't want to necessarily inherit the AbstractVariable state from the superclassDexCFG.BasicBlockgetBasicBlock()intgetLocal(int i)int[]getLocals()Use with care.intgetStackHeight()Returns the stackHeight.booleanhasValue(int val)voidreplaceValue(int from, int to)voidsetLocal(int i, int j)set the value of local i to symbol jStringtoString()-
Methods inherited from class com.ibm.wala.fixpoint.AbstractVariable
equals, getOrderNumber, hashCode, nextHash, setOrderNumber
-
Methods inherited from class com.ibm.wala.util.graph.impl.NodeWithNumber
getGraphNodeId, setGraphNodeId
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.ibm.wala.util.graph.INodeWithNumber
getGraphNodeId, setGraphNodeId
-
-
-
-
Constructor Detail
-
MachineState
public MachineState(DexCFG.BasicBlock bb)
-
-
Method Detail
-
duplicate
public AbstractIntRegisterMachine.MachineState duplicate()
I'm not using clone because I don't want to necessarily inherit the AbstractVariable state from the superclass
-
getBasicBlock
public DexCFG.BasicBlock getBasicBlock()
-
allocateLocals
public void allocateLocals()
-
setLocal
public void setLocal(int i, int j)set the value of local i to symbol j- Parameters:
i-j-
-
getLocal
public int getLocal(int i)
- Parameters:
i-- Returns:
- the number of the symbol corresponding to local i
-
replaceValue
public void replaceValue(int from, int to)
-
hasValue
public boolean hasValue(int val)
-
copyState
public void copyState(AbstractIntRegisterMachine.MachineState other)
Description copied from interface:IVariableSet this variable to have the same state as another one
-
getStackHeight
public int getStackHeight()
Returns the stackHeight.- Returns:
- int
-
getLocals
public int[] getLocals()
Use with care.
-
-