public JavaScriptConstructorContextSelector(ContextSelector base) { this.base = base; this.oneLevelCallStrings = new nCFAContextSelector(1, base); this.oneLevelCallerSite = new OneLevelSiteContextSelector(base); }
/** * @return an object which creates contexts for call graph nodes based on the container disambiguation policy */ protected ContextSelector makeContainerContextSelector(IClassHierarchy cha, ZeroXInstanceKeys keys) { return new ContainerContextSelector(cha, keys); }
/** * subclasses can override as desired */ protected ZeroXInstanceKeys makeInstanceKeys(IClassHierarchy cha, AnalysisOptions options, SSAContextInterpreter contextInterpreter, int instancePolicy) { ZeroXInstanceKeys zik = new ZeroXInstanceKeys(options, cha, contextInterpreter, instancePolicy); return zik; }
@Override public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] receiver) { Context baseContext = base.getCalleeTarget(caller, site, callee, receiver); CallString cs = getCallString(caller, site, callee); if (cs == null) { return baseContext; } else if (baseContext == Everywhere.EVERYWHERE) { return new CallStringContext(cs); } else { return new CallStringContextPair(cs, baseContext); } }
@Override public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + ((callSite == null) ? 0 : callSite.hashCode()); return result; }
public JavaScriptFunctionApplyContextSelector(ContextSelector base) { this.base = base; // this.oneLevel = new nCFAContextSelector(1, base); this.oneLevel = new OneLevelSiteContextSelector(base); }
/** * @param options governing analysis options */ public DefaultRTAInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { defaultInterpreter = new ContextInsensitiveSSAInterpreter(options, cache); }
@Override public String toString() { return "CallStringContext: " + cs.toString(); }
@Override public String toString() { return "Caller: " + getCaller() + ",Base:" + baseContext; }
protected ZeroXInstanceKeys makeInstanceKeys(IClassHierarchy cha, AnalysisOptions options, SSAContextInterpreter contextInterpreter) { ZeroXInstanceKeys zik = new ZeroXInstanceKeys(options, cha, contextInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.SMUSH_PRIMITIVE_HOLDERS | ZeroXInstanceKeys.SMUSH_STRINGS | ZeroXInstanceKeys.SMUSH_MANY | ZeroXInstanceKeys.SMUSH_THROWABLES); return zik; }
@Override public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] receiver) { Context baseContext = base.getCalleeTarget(caller, site, callee, receiver); CallString cs = getCallString(caller, site, callee); if (cs == null) { return baseContext; } else if (baseContext == Everywhere.EVERYWHERE) { return new CallStringContext(cs); } else { return new CallStringContextPair(cs, baseContext); } }
public JavaScriptConstructorContextSelector(ContextSelector base) { this.base = base; this.oneLevelCallStrings = new nCFAContextSelector(1, base); this.oneLevelCallerSite = new OneLevelSiteContextSelector(base); }
/** * @return an object which creates contexts for call graph nodes based on the container disambiguation policy */ protected ContextSelector makeContainerContextSelector(IClassHierarchy cha, ZeroXInstanceKeys keys) { return new ContainerContextSelector(cha, keys); }
@Override public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + ((callSite == null) ? 0 : callSite.hashCode()); return result; }
public JavaScriptFunctionApplyContextSelector(ContextSelector base) { this.base = base; // this.oneLevel = new nCFAContextSelector(1, base); this.oneLevel = new OneLevelSiteContextSelector(base); }
/** * @param options governing analysis options */ public DefaultRTAInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { defaultInterpreter = new ContextInsensitiveSSAInterpreter(options, cache); }
protected ZeroXInstanceKeys makeInstanceKeys(IClassHierarchy cha, AnalysisOptions options, SSAContextInterpreter contextInterpreter) { ZeroXInstanceKeys zik = new ZeroXInstanceKeys(options, cha, contextInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.SMUSH_PRIMITIVE_HOLDERS | ZeroXInstanceKeys.SMUSH_STRINGS | ZeroXInstanceKeys.SMUSH_MANY | ZeroXInstanceKeys.SMUSH_THROWABLES); return zik; }
/** * @return an object which creates contexts for call graph nodes based on the container disambiguation policy */ protected ContextSelector makeContainerContextSelector(IClassHierarchy cha, ZeroXInstanceKeys keys) { return new ContainerContextSelector(cha, keys); }
/** * subclasses can override as desired */ protected ZeroXInstanceKeys makeInstanceKeys(IClassHierarchy cha, AnalysisOptions options, SSAContextInterpreter contextInterpreter, int instancePolicy) { ZeroXInstanceKeys zik = new ZeroXInstanceKeys(options, cha, contextInterpreter, instancePolicy); return zik; }
/** * @return an object which creates contexts for call graph nodes based on the container disambiguation policy */ protected ContextSelector makeContainerContextSelector(IClassHierarchy cha, ZeroXInstanceKeys keys) { return new ContainerContextSelector(cha, keys); }