Interface JvmHeapAbstractState<StateT extends LatticeAbstractState<StateT>>

    • Method Detail

      • newArray

        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.
      • newObject

        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.
      • newObject

        default StateT newObject​(Clazz clazz,
                                 JvmCfaNode creationCite)
        Creates a new object of a given Clazz at a specific program point and returns a reference to it.
      • getFieldOrDefault

        <T> StateT getFieldOrDefault​(T object,
                                     java.lang.String fqn,
                                     StateT defaultValue)
        Returns a field fqn from a reference object. If there is no abstract state representing the field, returns the defaultValue
      • setField

        <T> void setField​(T object,
                          java.lang.String fqn,
                          StateT value)
        Sets a value to a field fqn of a referenced object.
      • getArrayElementOrDefault

        <T> StateT getArrayElementOrDefault​(T array,
                                            StateT index,
                                            StateT defaultValue)
        Returns an array element at the specified index or the defaultValue, if the element is unset.
      • setArrayElement

        <T> void setArrayElement​(T array,
                                 StateT index,
                                 StateT value)
        Sets the array element value at the specified index.
      • reduce

        default void reduce​(java.util.Set<java.lang.Object> references)
        Discards unused parts of the heap. Does nothing in the default implementation.

        This can be overridden to model discarding heap portions at call sites.

        Parameters:
        references - information on the references to keep or discard, based on the implementation. Unused in the default implementation
      • expand

        default void expand​(JvmHeapAbstractState<StateT> otherState)
        Expands the heap with references present in another state. Does nothing in the default implementation.

        This can be overridden to model recovering information discarded at call sites when analyzing a return site.

        Parameters:
        otherState - a heap state from which expanding the heap (e.g. the state calling a method to recover information discarded from it)