Exemplo n.º 1
0
        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));
 }