@Override public IMethod getCalleeTarget(CGNode caller, CallSiteReference site, IClass receiver) { assert getSelector(site) != null: "no selector for " + getLanguage(site) + " method " + site; return getSelector(site).getCalleeTarget(caller, site, receiver); }
private MethodTargetSelector getSelector(CallSiteReference site) { return languageSelectors.get(getLanguage(site)); }
public static void addDefaultDispatchLogic(AnalysisOptions options, IClassHierarchy cha) { com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); Map<Atom,MethodTargetSelector> methodTargetSelectors = HashMapFactory.make(); methodTargetSelectors.put(JavaScriptLoader.JS.getName(), new JavaScriptConstructTargetSelector(cha, new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector()))); methodTargetSelectors.put(Language.JAVA.getName(), options.getMethodTargetSelector()); options.setSelector(new CrossLanguageMethodTargetSelector(methodTargetSelectors)); }
private MethodTargetSelector getSelector(CallSiteReference site) { return languageSelectors.get(getLanguage(site)); }
@Override public IMethod getCalleeTarget(CGNode caller, CallSiteReference site, IClass receiver) { assert getSelector(site) != null: "no selector for " + getLanguage(site) + " method " + site; return getSelector(site).getCalleeTarget(caller, site, receiver); }
private static Atom getLanguage(CallSiteReference site) { return getLanguage(site.getDeclaredTarget()); }
private static Atom getLanguage(CallSiteReference site) { return getLanguage(site.getDeclaredTarget()); }