public static PropagationStack Create(Dictionary <MethodDefinition, List <PropagationReason> > propagationGraph, MethodDefinition method) { var ps = new PropagationStack(); while (true) { ps.stack.Add(method); if (ps.stack.Count > 100) { Debugger.Break(); } var r = propagationGraph[method].First(); ps.reasons[method] = r; if (r.MethodThatTaintedMe == null) { return(ps); } method = r.MethodThatTaintedMe; } }
private IEnumerable <PropagationReason> PropagationStackFor(MethodDefinition m) { return(PropagationStack.Create(_propagationGraph, m)); }