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