类 JvmShallowHeapAbstractState<ReferenceT,StateT extends AbstractState<StateT>>
- java.lang.Object
-
- proguard.analysis.cpa.jvm.state.heap.tree.JvmShallowHeapAbstractState<ReferenceT,StateT>
-
- 所有已实现的接口:
AbstractState<JvmHeapAbstractState<StateT>>,JvmHeapAbstractState<StateT>
public class JvmShallowHeapAbstractState<ReferenceT,StateT extends AbstractState<StateT>> extends java.lang.Object implements JvmHeapAbstractState<StateT>
A shallow heap models objects as atomic abstract states thus having only one level of depth. Object fields are not modeled. References of wrong types are ignored.
-
-
字段概要
字段 修饰符和类型 字段 说明 protected StateTdefaultValueprotected java.lang.Class<ReferenceT>referenceClassMapAbstractState<ReferenceT,StateT>referenceToObject
-
构造器概要
构造器 构造器 说明 JvmShallowHeapAbstractState(MapAbstractState<ReferenceT,StateT> referenceToObject, java.lang.Class<ReferenceT> referenceClass, StateT defaultValue)Create a shallow heap abstract state returning the specified value for all queries from an existing reference to abstract state map.
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 JvmShallowHeapAbstractState<ReferenceT,StateT>copy()Creates a copy of itself.booleanequals(java.lang.Object o)voidexpand(JvmHeapAbstractState<StateT> otherState)Expands the state with all the entries from another heap state with reference not already known by the state.<T> StateTgetArrayElementOrDefault(T array, StateT index, StateT defaultValue)Returns anarrayelement at the specifiedindexor thedefaultValue, if the element is unset.<T> StateTgetFieldOrDefault(T object, java.lang.String fqn, StateT defaultValue)Returns a fieldfqnfrom a referenceobject.inthashCode()booleanisLessOrEqual(JvmHeapAbstractState<StateT> abstractState)Compares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).JvmShallowHeapAbstractState<ReferenceT,StateT>join(JvmHeapAbstractState<StateT> abstractState)Computes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).StateTnewArray(java.lang.String type, java.util.List<StateT> dimensions, JvmCfaNode creationCite)Creates a new array of a given class with the given dimension sizes at a specific program point and returns a reference to it.StateTnewObject(java.lang.String className, JvmCfaNode creationCite)Creates a new object of a given class at a specific program point and returns a reference to it.voidreduce(java.util.Set<java.lang.Object> referencesToKeep)Discards all the references not in {@param referencesToKeep}.<T> voidsetArrayElement(T array, StateT index, StateT value)Sets thearrayelementvalueat the specifiedindex.<T> voidsetField(T object, java.lang.String fqn, StateT value)Sets avalueto a fieldfqnof a referencedobject.-
从接口继承的方法 proguard.analysis.cpa.interfaces.AbstractState
getPrecision, isLess
-
从接口继承的方法 proguard.analysis.cpa.jvm.state.heap.JvmHeapAbstractState
newObject
-
-
-
-
字段详细资料
-
referenceToObject
public final MapAbstractState<ReferenceT,StateT extends AbstractState<StateT>> referenceToObject
-
referenceClass
protected final java.lang.Class<ReferenceT> referenceClass
-
defaultValue
protected final StateT extends AbstractState<StateT> defaultValue
-
-
构造器详细资料
-
JvmShallowHeapAbstractState
public JvmShallowHeapAbstractState(MapAbstractState<ReferenceT,StateT> referenceToObject, java.lang.Class<ReferenceT> referenceClass, StateT defaultValue)
Create a shallow heap abstract state returning the specified value for all queries from an existing reference to abstract state map.- 参数:
defaultValue- the value to be returned by memory accessesreferenceClass- the class of the reference used for addressingreferenceToObject- the value to be returned by memory accesses
-
-
方法详细资料
-
reduce
public void reduce(java.util.Set<java.lang.Object> referencesToKeep)
Discards all the references not in {@param referencesToKeep}.- 指定者:
reduce在接口中JvmHeapAbstractState<ReferenceT>- 参数:
referencesToKeep- information on the references to keep or discard, based on the implementation. Unused in the default implementation
-
expand
public void expand(JvmHeapAbstractState<StateT> otherState)
Expands the state with all the entries from another heap state with reference not already known by the state.- 指定者:
expand在接口中JvmHeapAbstractState<ReferenceT>- 参数:
otherState- a heap state from which expanding the heap (e.g. the state calling a method to recover information discarded from it)
-
getFieldOrDefault
public <T> StateT getFieldOrDefault(T object, java.lang.String fqn, StateT defaultValue)
从接口复制的说明:JvmHeapAbstractStateReturns a fieldfqnfrom a referenceobject. If there is no abstract state representing the field, returns thedefaultValue- 指定者:
getFieldOrDefault在接口中JvmHeapAbstractState<ReferenceT>
-
setField
public <T> void setField(T object, java.lang.String fqn, StateT value)从接口复制的说明:JvmHeapAbstractStateSets avalueto a fieldfqnof a referencedobject.- 指定者:
setField在接口中JvmHeapAbstractState<ReferenceT>
-
getArrayElementOrDefault
public <T> StateT getArrayElementOrDefault(T array, StateT index, StateT defaultValue)
从接口复制的说明:JvmHeapAbstractStateReturns anarrayelement at the specifiedindexor thedefaultValue, if the element is unset.
-
setArrayElement
public <T> void setArrayElement(T array, StateT index, StateT value)从接口复制的说明:JvmHeapAbstractStateSets thearrayelementvalueat the specifiedindex.- 指定者:
setArrayElement在接口中JvmHeapAbstractState<ReferenceT>
-
newObject
public StateT newObject(java.lang.String className, JvmCfaNode creationCite)
从接口复制的说明:JvmHeapAbstractStateCreates a new object of a given class at a specific program point and returns a reference to it.- 指定者:
newObject在接口中JvmHeapAbstractState<ReferenceT>
-
newArray
public StateT newArray(java.lang.String type, java.util.List<StateT> dimensions, JvmCfaNode creationCite)
从接口复制的说明:JvmHeapAbstractStateCreates a new array of a given class with the given dimension sizes at a specific program point and returns a reference to it.- 指定者:
newArray在接口中JvmHeapAbstractState<ReferenceT>
-
join
public JvmShallowHeapAbstractState<ReferenceT,StateT> join(JvmHeapAbstractState<StateT> abstractState)
从接口复制的说明:AbstractStateComputes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).- 指定者:
join在接口中AbstractState<ReferenceT>
-
isLessOrEqual
public boolean isLessOrEqual(JvmHeapAbstractState<StateT> abstractState)
从接口复制的说明:AbstractStateCompares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).- 指定者:
isLessOrEqual在接口中AbstractState<ReferenceT>
-
equals
public boolean equals(java.lang.Object o)
- 指定者:
equals在接口中AbstractState<ReferenceT>- 覆盖:
equals在类中java.lang.Object
-
hashCode
public int hashCode()
- 指定者:
hashCode在接口中AbstractState<ReferenceT>- 覆盖:
hashCode在类中java.lang.Object
-
copy
public JvmShallowHeapAbstractState<ReferenceT,StateT> copy()
从接口复制的说明:AbstractStateCreates a copy of itself.- 指定者:
copy在接口中AbstractState<ReferenceT>- 指定者:
copy在接口中JvmHeapAbstractState<ReferenceT>
-
-