类 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 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 final StateTprotected final Class<ReferenceT>final MapAbstractState<ReferenceT,StateT> -
构造器概要
构造器构造器说明JvmShallowHeapAbstractState(MapAbstractState<ReferenceT, StateT> referenceToObject, 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. -
方法概要
修饰符和类型方法说明copy()Creates a copy of itself.booleanvoidexpand(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, 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).join(JvmHeapAbstractState<StateT> abstractState) Computes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).newArray(String type, 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.newObject(String className, JvmCfaNode creationCite) Creates a new object of a given class at a specific program point and returns a reference to it.voidDiscards all the references not in .<T> voidsetArrayElement(T array, StateT index, StateT value) Sets thearrayelementvalueat the specifiedindex.<T> voidSets avalueto a fieldfqnof a referencedobject.从接口继承的方法 proguard.analysis.cpa.interfaces.AbstractState
getPrecision, isLess从接口继承的方法 proguard.analysis.cpa.jvm.state.heap.JvmHeapAbstractState
newObject
-
字段详细资料
-
referenceToObject
-
referenceClass
-
defaultValue
-
-
构造器详细资料
-
JvmShallowHeapAbstractState
public JvmShallowHeapAbstractState(MapAbstractState<ReferenceT, StateT> referenceToObject, 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
Discards all the references not in .- 指定者:
reduce在接口中JvmHeapAbstractState<ReferenceT>- 参数:
referencesToKeep- information on the references to keep or discard, based on the implementation. Unused in the default implementation
-
expand
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
从接口复制的说明:JvmHeapAbstractStateReturns a fieldfqnfrom a referenceobject. If there is no abstract state representing the field, returns thedefaultValue- 指定者:
getFieldOrDefault在接口中JvmHeapAbstractState<ReferenceT>
-
setField
从接口复制的说明:JvmHeapAbstractStateSets avalueto a fieldfqnof a referencedobject.- 指定者:
setField在接口中JvmHeapAbstractState<ReferenceT>
-
getArrayElementOrDefault
从接口复制的说明:JvmHeapAbstractStateReturns anarrayelement at the specifiedindexor thedefaultValue, if the element is unset. -
setArrayElement
从接口复制的说明:JvmHeapAbstractStateSets thearrayelementvalueat the specifiedindex.- 指定者:
setArrayElement在接口中JvmHeapAbstractState<ReferenceT>
-
newObject
从接口复制的说明:JvmHeapAbstractStateCreates a new object of a given class at a specific program point and returns a reference to it.- 指定者:
newObject在接口中JvmHeapAbstractState<ReferenceT>
-
newArray
从接口复制的说明: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
从接口复制的说明:AbstractStateCompares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).- 指定者:
isLessOrEqual在接口中AbstractState<ReferenceT>
-
equals
- 指定者:
equals在接口中AbstractState<ReferenceT>- 覆盖:
equals在类中Object
-
hashCode
public int hashCode()- 指定者:
hashCode在接口中AbstractState<ReferenceT>- 覆盖:
hashCode在类中Object
-
copy
从接口复制的说明:AbstractStateCreates a copy of itself.- 指定者:
copy在接口中AbstractState<ReferenceT>- 指定者:
copy在接口中JvmHeapAbstractState<ReferenceT>
-