Class nObjContextSelector

java.lang.Object
com.ibm.wala.ipa.callgraph.propagation.cfa.nObjContextSelector
All Implemented Interfaces:
ContextSelector

public class nObjContextSelector extends Object implements ContextSelector
k-limited object sensitive context selector
  • for static method : For a few well-known static factory methods from the standard libraries, use CallerSiteContext.Otherwise, directly copy the context of the last non-static method
  • for virtual method : The Context consists of n allocation sites
  • for an object(fixed at allocation) : The heap context consists of n allocation sites inherited from CGNode
  • Field Details

    • ALLOCATION_STRING_KEY

      public static final ContextKey ALLOCATION_STRING_KEY
  • Constructor Details

    • nObjContextSelector

      public nObjContextSelector(int n, ContextSelector base)
  • Method Details

    • getCalleeTarget

      public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] actualParameters)
      Description copied from interface: ContextSelector
      Given a calling node and a call site, returns the Context in which the callee should be evaluated.
      Specified by:
      getCalleeTarget in interface ContextSelector
      Parameters:
      caller - the node containing the call site
      site - description of the call site
      actualParameters - the abstract objects (InstanceKeys) of parameters of interest to the selector
      Returns:
      the Context in which the callee should be evaluated, or null if no information is available.
    • getCalleeTargetForStaticCall

      protected Context getCalleeTargetForStaticCall(CGNode caller, CallSiteReference site, IMethod callee)
    • getRelevantParameters

      public IntSet getRelevantParameters(CGNode caller, CallSiteReference site)
      Description copied from interface: ContextSelector
      Given a calling node and a call site, return the set of parameters based on which this selector may choose to specialize contexts.
      Specified by:
      getRelevantParameters in interface ContextSelector
      Parameters:
      caller - the calling node
      site - the specific call site
      Returns:
      the set of parameters of interest