Esempio n. 1
0
        private async Task DispatchCallMessageForDelegateCallAsync(DelegateCallInfo delegateCallInfo, PropagationKind propKind)
        {
            var tasks = new List <Task>();

            foreach (var callee in delegateCallInfo.PossibleCallees)
            {
                var task = this.CreateAndSendCallMessageAsync(delegateCallInfo, callee, propKind);
                tasks.Add(task);
            }

            await Task.WhenAll(tasks);
        }
        public void RegisterStaticDelegateCall(MethodDescriptor callee, IList <PropGraphNodeDescriptor> arguments,
                                               VariableNode lhs, DelegateVariableNode delegateNode, AnalysisCallNode callNode)
        {
            Contract.Requires(delegateNode != null);
            Contract.Requires(arguments != null);
            Contract.Requires(callee != null);

            var callExp = new DelegateCallInfo(this.Method, callNode, delegateNode, arguments, lhs);

            // RegisterInvocation(arguments, delegateNode, callExp);
            RegisterInvocation(arguments, callNode, callExp);
        }
Esempio n. 3
0
 internal async Task <ISet <MethodDescriptor> > ComputeCalleesForDelegateNodeAsync(DelegateCallInfo callInfo, IProjectCodeProvider codeProvider)
 {
     return(await GetDelegateCalleesAsync(callInfo.Delegate, codeProvider));
 }
 internal ISet <MethodDescriptor> ComputeCalleesForDelegateNode(DelegateCallInfo callInfo, IProjectCodeProvider codeProvider)
 {
     return(GetDelegateCallees(callInfo.Delegate, codeProvider));
 }
		private async Task DispatchCallMessageForDelegateAsync(DelegateCallInfo delegateCallInfo, PropagationKind propKind)
		{
			var continuations = new List<Task>();
			foreach (var callee in await GetDelegateCalleesAsync(delegateCallInfo.CalleeDelegate))
			{
				var continuation = CreateAndSendCallMessageAsync(delegateCallInfo, 
					callee, callee.ContainerType, propKind);
                await continuation;
                //continuations.Add(continuation);
			}
			await Task.WhenAll(continuations);
		}
        public void RegisterStaticDelegateCall(MethodDescriptor callee, IList<PropGraphNodeDescriptor> arguments, 
            VariableNode lhs, DelegateVariableNode delegateNode, AnalysisCallNode callNode)
        {
            Contract.Requires(delegateNode != null);
            Contract.Requires(arguments != null);
            Contract.Requires(callee != null);

            var callExp = new DelegateCallInfo(this.Method, callNode, delegateNode, arguments, lhs);

            // RegisterInvocation(arguments, delegateNode, callExp);
            RegisterInvocation(arguments, callNode, callExp);
        }
 private void DispatchCallMessageForDelegate(DelegateCallInfo delegateCallInfo, PropagationKind propKind)
 {
     foreach (var callee in GetDelegateCallees(delegateCallInfo.CalleeDelegate))
     {
         CreateAndSendCallMessage(delegateCallInfo, callee, callee.ContainerType, propKind);
     }
 }