类 JvmFrameAbstractState<StateT extends AbstractState<StateT>>
- java.lang.Object
-
- proguard.analysis.cpa.jvm.state.JvmFrameAbstractState<StateT>
-
- 所有已实现的接口:
AbstractState<JvmFrameAbstractState<StateT>>
public class JvmFrameAbstractState<StateT extends AbstractState<StateT>> extends java.lang.Object implements AbstractState<JvmFrameAbstractState<StateT>>
TheJvmFrameAbstractStatecombines the operand stack as theStackAbstractStateand the local variable array as theListAbstractState. This abstract state does not restrict the way one models values, i.e., one abstract state may correspond to a byte sequence of arbitrary length.
-
-
字段概要
字段 修饰符和类型 字段 说明 protected ListAbstractState<StateT>localVariablesprotected StackAbstractState<StateT>operandStack
-
构造器概要
构造器 构造器 说明 JvmFrameAbstractState()Create an empty frame.JvmFrameAbstractState(ListAbstractState<StateT> localVariables, StackAbstractState<StateT> operandStack)Create a frame from a local variable array and an operand stack.
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 JvmFrameAbstractState<StateT>copy()Creates a copy of itself.booleanequals(java.lang.Object obj)ListAbstractState<StateT>getLocalVariables()Returns the variable array.StackAbstractState<StateT>getOperandStack()Returns the operand stack.StateTgetVariableOrDefault(int index, StateT defaultState)Returns an abstract state at theindexth position of the variable array ordefaultStateif there is no entry.inthashCode()booleanisLessOrEqual(JvmFrameAbstractState<StateT> abstractState)Compares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).JvmFrameAbstractState<StateT>join(JvmFrameAbstractState<StateT> abstractState)Computes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).StateTpeek(int index)Returns theindexth element from the top of the operand stack.StateTpeekOrDefault(int index, StateT defaultState)Returns theindexth element from the top of the operand stack or returnsdefaultStateif the stack does not have enough elements.StateTpop()Removes the top element of the operand stack end returns it.StateTpopOrDefault(StateT defaultState)Removes the top element of the operand stack end returns it.StateTpush(StateT state)Insertsstateto the top of the operand stack and returns it.java.util.List<StateT>pushAll(java.util.List<StateT> states)Sequentially inserts elements ofstatesto the top of the operand stack and returnsstates.StateTsetVariable(int index, StateT state, StateT defaultState)Sets theindexth position of the variable array tostateand returnsstate.-
从接口继承的方法 proguard.analysis.cpa.interfaces.AbstractState
getPrecision, isLess
-
-
-
-
字段详细资料
-
localVariables
protected final ListAbstractState<StateT extends AbstractState<StateT>> localVariables
-
operandStack
protected final StackAbstractState<StateT extends AbstractState<StateT>> operandStack
-
-
构造器详细资料
-
JvmFrameAbstractState
public JvmFrameAbstractState()
Create an empty frame.
-
JvmFrameAbstractState
public JvmFrameAbstractState(ListAbstractState<StateT> localVariables, StackAbstractState<StateT> operandStack)
Create a frame from a local variable array and an operand stack.- 参数:
localVariables- a local variable arrayoperandStack- an operand stack
-
-
方法详细资料
-
join
public JvmFrameAbstractState<StateT> join(JvmFrameAbstractState<StateT> abstractState)
从接口复制的说明:AbstractStateComputes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).- 指定者:
join在接口中AbstractState<StateT extends AbstractState<StateT>>
-
isLessOrEqual
public boolean isLessOrEqual(JvmFrameAbstractState<StateT> abstractState)
从接口复制的说明:AbstractStateCompares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).- 指定者:
isLessOrEqual在接口中AbstractState<StateT extends AbstractState<StateT>>
-
copy
public JvmFrameAbstractState<StateT> copy()
从接口复制的说明:AbstractStateCreates a copy of itself.- 指定者:
copy在接口中AbstractState<StateT extends AbstractState<StateT>>
-
equals
public boolean equals(java.lang.Object obj)
- 指定者:
equals在接口中AbstractState<StateT extends AbstractState<StateT>>- 覆盖:
equals在类中java.lang.Object
-
hashCode
public int hashCode()
- 指定者:
hashCode在接口中AbstractState<StateT extends AbstractState<StateT>>- 覆盖:
hashCode在类中java.lang.Object
-
peekOrDefault
public StateT peekOrDefault(int index, StateT defaultState)
Returns theindexth element from the top of the operand stack or returnsdefaultStateif the stack does not have enough elements.
-
peek
public StateT peek(int index)
Returns theindexth element from the top of the operand stack.
-
pop
public StateT pop()
Removes the top element of the operand stack end returns it.
-
popOrDefault
public StateT popOrDefault(StateT defaultState)
Removes the top element of the operand stack end returns it. ReturnsdefaultStateif the stack is empty.
-
push
public StateT push(StateT state)
Insertsstateto the top of the operand stack and returns it.
-
pushAll
public java.util.List<StateT> pushAll(java.util.List<StateT> states)
Sequentially inserts elements ofstatesto the top of the operand stack and returnsstates.
-
getVariableOrDefault
public StateT getVariableOrDefault(int index, StateT defaultState)
Returns an abstract state at theindexth position of the variable array ordefaultStateif there is no entry.
-
setVariable
public StateT setVariable(int index, StateT state, StateT defaultState)
Sets theindexth position of the variable array tostateand returnsstate. If the array has to be extended, the added cells are padded withdefaultState.
-
getLocalVariables
public ListAbstractState<StateT> getLocalVariables()
Returns the variable array.
-
getOperandStack
public StackAbstractState<StateT> getOperandStack()
Returns the operand stack.
-
-