Interface InstanceKey

All Superinterfaces:
ContextItem
All Known Subinterfaces:
InstanceKeyWithNode, ObjectVertex
All Known Implementing Classes:
AbstractTypeInNode, AllocationSite, AllocationSiteInNode, ConcreteTypeKey, ConstantKey, CreationSiteVertex, FuncVertex, GlobalObjectKey, GlobalVertex, MultiNewArrayInNode, NormalAllocationInNode, ScopeMappingInstanceKeys.ScopeMappingInstanceKey, SmushedAllocationSiteInNode, StringConstantCharArray, ZeroLengthArrayInNode

public interface InstanceKey extends ContextItem
An InstanceKey serves as the representative for an equivalence class of objects in the heap, that can be pointed to.

For example, for 0-CFA, an InstanceKey would embody an <IClass>... we model all instances of a particular class

For 0-1-CFA, an InstanceKey could be <IMethod,statement #>, representing a particular allocation statement in a particular method.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface com.ibm.wala.ipa.callgraph.ContextItem

    ContextItem.Value<T>
  • Method Summary

    Modifier and Type
    Method
    Description
    For now, we assert that each InstanceKey represents a set of classes which are all of the same concrete type (modulo the fact that all arrays of references are considered concrete type []Object;)
    Get the creation sites of this, i.e., the statements that may allocate objects represented by this.
  • Method Details

    • getConcreteType

      IClass getConcreteType()
      For now, we assert that each InstanceKey represents a set of classes which are all of the same concrete type (modulo the fact that all arrays of references are considered concrete type []Object;)
    • getCreationSites

      Iterator<Pair<CGNode,NewSiteReference>> getCreationSites(CallGraph CG)
      Get the creation sites of this, i.e., the statements that may allocate objects represented by this. A creation site is a pair (n,s), where n is the containing CGNode in the given CallGraph CG and s is the allocating NewSiteReference.