private void Analyze(IEnumerable<MethodDefinition> methodRequiringPrivileges, IEnumerable<MethodDefinition> sscMethods, HashSet<TypeDefinition> criticalTypes, ICollection<MethodToMethodCall> ignoreMethodCalls)
        {
            _methodRequiringPrivilegesThemselves = methodRequiringPrivileges.ToList();
            _canBeSscManual = new HashSet<MethodDefinition>(sscMethods);
            _resultingCriticalMethods = new List<MethodDefinition>();
            _propagationGraph = new Dictionary<MethodDefinition, List<PropagationReason>>();
            _criticalTypes = criticalTypes;
            _methodMap = new MethodMap(_assemblies, ignoreMethodCalls);

            InitPropagationReasonForCriticalTypeMembers();
            InitPropagationReasonForMethodsRequiringPrivilegesThemselves();
            Propagate();
        }
예제 #2
0
        private void Analyze(IEnumerable <MethodDefinition> methodRequiringPrivileges, IEnumerable <MethodDefinition> sscMethods, ICollection <TypeDefinition> criticalTypes, ICollection <MethodToMethodCall> ignoreMethodCalls)
        {
            _methodRequiringPrivilegesThemselves = methodRequiringPrivileges.ToList();
            _canBeSscManual           = new HashSet <MethodDefinition>(sscMethods);
            _resultingCriticalMethods = new List <MethodDefinition>();
            _propagationGraph         = new Dictionary <MethodDefinition, List <PropagationReason> >();
            _criticalTypes            = criticalTypes;
            _methodMap = new MethodMap(_assemblies, ignoreMethodCalls);

            InitPropagationReasonForCriticalTypeMembers();
            InitPropagationReasonForMethodsRequiringPrivilegesThemselves();
            Propagate();
        }