private static TaintedDataAnalysisResult?TryGetOrComputeResultForAnalysisContext(TaintedDataAnalysisContext analysisContext) { TaintedDataAnalysisDomain analysisDomain = new TaintedDataAnalysisDomain(new CoreTaintedDataAnalysisDataDomain(analysisContext.PointsToAnalysisResultOpt)); TaintedDataOperationVisitor visitor = new TaintedDataOperationVisitor(analysisDomain, analysisContext); TaintedDataAnalysis analysis = new TaintedDataAnalysis(analysisDomain, visitor); return(analysis.TryGetOrComputeResultCore(analysisContext, cacheResult: true)); }
public TaintedDataOperationVisitor(TaintedDataAnalysisDomain taintedDataAnalysisDomain, TaintedDataAnalysisContext analysisContext) : base(analysisContext) { _taintedDataAnalysisDomain = taintedDataAnalysisDomain; this.TaintedSourcesBySink = new Dictionary <SymbolAccess, (ImmutableHashSet <SinkKind> .Builder SinkKinds, ImmutableHashSet <SymbolAccess> .Builder SourceOrigins)>(); }
private TaintedDataAnalysis(TaintedDataAnalysisDomain analysisDomain, TaintedDataOperationVisitor operationVisitor) : base(analysisDomain, operationVisitor) { }