Class IntentContextSelector

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

public class IntentContextSelector extends Object implements ContextSelector
Adds Intents to the Context of functions that start Android-Components.

This is done by remembering all new-sites where Intent-Objects are built and the parameters to its Constructor. When a function managed by this Selector (see IntentStarters) is encountered the stored information is added to its Context.

Since:
2013-10-14
Author:
Tobias Blaschke <code@tobiasblaschke.de>
See Also:
  • Constructor Details

    • IntentContextSelector

      public IntentContextSelector(IClassHierarchy cha)
    • IntentContextSelector

      public IntentContextSelector(ContextSelector parent, IClassHierarchy cha)
      Parameters:
      parent - is always asked to build a Context first. Context generated by this class is added then.
  • Method Details

    • getCalleeTarget

      public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] actualParameters)
      Given a calling node and a call site, returns the Context in which the callee should be evaluated.

      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.
      Throws:
      IllegalArgumentException - if the type of a parameter given as actualParameters does not match an expected one
    • getRelevantParameters

      public IntSet getRelevantParameters(CGNode caller, CallSiteReference site)
      Given a calling node and a call site, return the set of parameters based on which this selector may choose to specialize contexts.

      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