Class ZeroXInstanceKeys

java.lang.Object
com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys
All Implemented Interfaces:
InstanceKeyFactory

public class ZeroXInstanceKeys extends Object implements InstanceKeyFactory
Flexible class to create InstanceKeys depending on various policies ranging from class-based (i.e. 0-CFA) to allocation-site-based (0-1-CFA variants).
  • Field Details Link icon

    • JavaLangStringBuffer Link icon

      public static final TypeReference JavaLangStringBuffer
    • JavaLangStringBuilder Link icon

      public static final TypeReference JavaLangStringBuilder
    • JavaLangAbstractStringBuilder Link icon

      public static final TypeReference JavaLangAbstractStringBuilder
    • NONE Link icon

      public static final int NONE
      The NONE policy is not allocation-site based
      See Also:
    • ALLOCATIONS Link icon

      public static final int ALLOCATIONS
      An ALLOCATIONS - based policy distinguishes instances by allocation site. Otherwise, the policy distinguishes instances by type.
      See Also:
    • SMUSH_STRINGS Link icon

      public static final int SMUSH_STRINGS
      A policy variant where String and StringBuffers are NOT disambiguated according to allocation site.
      See Also:
    • SMUSH_THROWABLES Link icon

      public static final int SMUSH_THROWABLES
      A policy variant where Throwable instances are NOT disambiguated according to allocation site.
      See Also:
    • SMUSH_PRIMITIVE_HOLDERS Link icon

      public static final int SMUSH_PRIMITIVE_HOLDERS
      A policy variant where if a type T has only primitive instance fields, then instances of type T are NOT disambiguated by allocation site.
      See Also:
    • SMUSH_MANY Link icon

      public static final int SMUSH_MANY
      This variant counts the N, number of allocation sites of a particular type T in each method. If N > SMUSH_LIMIT, then these N allocation sites are NOT distinguished ... instead there is a single abstract allocation site for <N,T>

      Probably the best choice in many cases.

      See Also:
    • CONSTANT_SPECIFIC Link icon

      public static final int CONSTANT_SPECIFIC
      Should we use constant-specific keys?
      See Also:
    • smushMap Link icon

      protected final Map<CGNode,Set<IClass>> smushMap
      a Map from CGNode->Set<IClass> that should be smushed.
  • Constructor Details Link icon

  • Method Details Link icon