public interface JvmHeapAbstractState<StateT extends LatticeAbstractState<StateT>> extends LatticeAbstractState<JvmHeapAbstractState<StateT>>
JvmHeapAbstractState provides the interfaces for heap operations over objects and arrays.| Modifier and Type | Method and Description |
|---|---|
JvmHeapAbstractState<StateT> |
copy()
Creates a copy of itself.
|
default void |
expand(JvmHeapAbstractState<StateT> otherState)
Expands the heap with references present in another state.
|
StateT |
getArrayElementOrDefault(StateT array,
StateT index,
StateT defaultValue)
Returns an
array element at the specified index or the defaultValue, if the element is unset. |
StateT |
getField(StateT object,
java.lang.String descriptor,
StateT defaultValue)
Returns a field
descriptor from a reference object. |
StateT |
newArray(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.
|
StateT |
newObject(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.
|
default void |
reduce(java.util.Optional<java.util.Set<Reference>> references)
Discards unused parts of the heap.
|
void |
setArrayElement(StateT array,
StateT index,
StateT value)
Sets the
array element value at the specified index. |
void |
setField(StateT object,
java.lang.String descriptor,
StateT value)
Sets a
value to a field descriptor of a referenced object and returns the value. |
isLess, isLessOrEqual, joinequals, getPrecision, getStateByName, hashCodeJvmHeapAbstractState<StateT> copy()
AbstractStatecopy in interface AbstractStateStateT newArray(java.lang.String type, java.util.List<StateT> dimensions, JvmCfaNode creationCite)
StateT newObject(java.lang.String className, JvmCfaNode creationCite)
StateT getField(StateT object, java.lang.String descriptor, StateT defaultValue)
descriptor from a reference object.
If there is no abstract state representing the field, returns the defaultValuevoid setField(StateT object, java.lang.String descriptor, StateT value)
value to a field descriptor of a referenced object and returns the value.StateT getArrayElementOrDefault(StateT array, StateT index, StateT defaultValue)
array element at the specified index or the defaultValue, if the element is unset.void setArrayElement(StateT array, StateT index, StateT value)
array element value at the specified index.default void reduce(java.util.Optional<java.util.Set<Reference>> references)
references - information on the references to keep or discard, based on the implementation. Unused in the default implementationdefault void expand(JvmHeapAbstractState<StateT> otherState)
otherState - a heap state from which expanding the heap (e.g. the state calling a method to recover information discarded from it)