Author: lluis
Date: 2005-06-22 06:24:10 -0400 (Wed, 22 Jun 2005)
New Revision: 46359

Modified:
   trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
   
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodReturnMessageWrapper.cs
   trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs
Log:
2005-06-22  Lluis Sanchez Gual  <[EMAIL PROTECTED]>

        * MethodReturnMessageWrapper.cs: ArgCount now returns the count
        from the internal arg array, since it may change.
        * MonoMethodMessage.cs: Added NeedsOutProcessing helper method.



Modified: trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog
===================================================================
--- trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog  
2005-06-22 10:23:09 UTC (rev 46358)
+++ trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/ChangeLog  
2005-06-22 10:24:10 UTC (rev 46359)
@@ -1,3 +1,9 @@
+2005-06-22  Lluis Sanchez Gual  <[EMAIL PROTECTED]>
+
+       * MethodReturnMessageWrapper.cs: ArgCount now returns the count
+       from the internal arg array, since it may change.
+       * MonoMethodMessage.cs: Added NeedsOutProcessing helper method.
+
 2005-05-31  Lluis Sanchez Gual  <[EMAIL PROTECTED]>
 
        * ReturnMessage.cs: Added some null checks.

Modified: 
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodReturnMessageWrapper.cs
===================================================================
--- 
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodReturnMessageWrapper.cs
      2005-06-22 10:23:09 UTC (rev 46358)
+++ 
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodReturnMessageWrapper.cs
      2005-06-22 10:24:10 UTC (rev 46359)
@@ -60,7 +60,7 @@
                }
 
                public virtual int ArgCount {
-                       get { return 
((IMethodReturnMessage)WrappedMessage).ArgCount; }
+                       get { return _args.Length; }
                }
 
                public virtual object [] Args 

Modified: 
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs
===================================================================
--- 
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs   
    2005-06-22 10:23:09 UTC (rev 46358)
+++ 
trunk/mcs/class/corlib/System.Runtime.Remoting.Messaging/MonoMethodMessage.cs   
    2005-06-22 10:24:10 UTC (rev 46359)
@@ -41,23 +41,17 @@
        [Serializable]
        internal class MonoMethodMessage : IMethodCallMessage, 
IMethodReturnMessage, IInternalMessage {
 
+               #region keep in sync with MonoMessage in object-internals.h
                MonoMethod method;
-
                object []  args;
-
                string []  names;
-
-               byte [] arg_types; /* 1 == IN; 2 == OUT ; 3 = INOUT */
-
+               byte [] arg_types; /* 1 == IN; 2 == OUT; 3 == INOUT; 4 == COPY 
OUT */
                public LogicalCallContext ctx;
-
                public object rval;
-
                public Exception exc;
-
                AsyncResult asyncResult;
-
                CallType call_type;
+               #endregion
 
                string uri;
 
@@ -354,6 +348,19 @@
                                return call_type;
                        }
                }
+               
+               public bool NeedsOutProcessing (out int outCount) {
+                       bool res = false;
+                       outCount = 0;
+                       foreach (byte t in arg_types) {
+                               if ((t & 2) != 0)
+                                       outCount++;
+                               else if ((t & 4) != 0)
+                                       res = true;
+                       }
+                       return outCount > 0 || res;
+               }
+               
        }
 
        internal enum CallType: int

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to