dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System Delegate.cs,1.6,1.7


From: Gopal.V <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/runtime/System Delegate.cs,1.6,1.7
Date: Sun, 29 Dec 2002 10:02:47 -0500

Update of /cvsroot/dotgnu-pnet/pnetlib/runtime/System
In directory subversions:/tmp/cvs-serv21872/runtime/System

Modified Files:
        Delegate.cs 
Log Message:
Fix for bug #2084, Delegates disambiguation


Index: Delegate.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/runtime/System/Delegate.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** Delegate.cs 29 Jun 2002 00:45:26 -0000      1.6
--- Delegate.cs 29 Dec 2002 15:02:45 -0000      1.7
***************
*** 130,133 ****
--- 130,144 ----
        extern private static Delegate CreateBlankDelegate
                                (Type type, ClrMethod method);
+       
+       private static Type[] GetDelegateParams(Type type)
+       {
+               ParameterInfo [] args=type.GetMethod("Invoke").GetParameters();
+               Type [] argTypes=new Type[args.Length];
+               for(int i=args.Length-1;i>=0;i--)
+               {
+                       argTypes[i] = args[i].ParameterType;
+               }
+               return argTypes;
+       }
  
        // Create a delegate for an instance method.
***************
*** 159,163 ****
                                                                (method, 
BindingFlags.Public |
                                                                                
 BindingFlags.NonPublic |
!                                                                               
 BindingFlags.Instance);
                                if(methodInfo == null)
                                {
--- 170,176 ----
                                                                (method, 
BindingFlags.Public |
                                                                                
 BindingFlags.NonPublic |
!                                                                               
 BindingFlags.Instance,
!                                                                               
 null, CallingConventions.Any,
!                                                                        
GetDelegateParams(type),null);
                                if(methodInfo == null)
                                {
***************
*** 207,211 ****
                                                                (method, 
BindingFlags.Public |
                                                                                
 BindingFlags.NonPublic |
!                                                                               
 BindingFlags.Static);
                                if(methodInfo == null || !(methodInfo is 
ClrMethod))
                                {
--- 220,226 ----
                                                                (method, 
BindingFlags.Public |
                                                                                
 BindingFlags.NonPublic |
!                                                                               
 BindingFlags.Static,
!                                                                               
 null, CallingConventions.Any,
!                                                                        
GetDelegateParams(type),null);
                                if(methodInfo == null || !(methodInfo is 
ClrMethod))
                                {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]