2010-03-25 Gonzalo Paniagua Javier * AsyncResult.cs: add new constructor used by the threadpool and new field that stores the time that the work item was added to the pool. 2010-03-03 Robert Jordan * CADMessages.cs (GetMethod): don't continue if the type could not be found in the current domain. Fixes #584067. 2009-09-29 Gonzalo Paniagua Javier * AsyncResult.cs: do not create the handle if not needed. 2009-09-27 Gonzalo Paniagua Javier * AsyncResult.cs: don't create the handle if we know the result is completed. 2009-09-12 Gonzalo Paniagua Javier * AsyncResult.cs: lock when setting the 'completed' field and use the property instead of the 'handle' field. 2008-11-10 Gonzalo Paniagua Javier * CADMessages.cs: when the method is generic, return a constructed method instead of the generic one. Fixes regression in System.Runtime.Remoting.GenericTest::TestCrossAppDomainChannel. 2008-07-06 Andreas Nahr * MethodCallMessageWrapper.cs: Fix signatures 2008-07-06 Andreas Nahr * IRemotingFormatter.cs: Fix parameter name * MethodCallMessageWrapper.cs: Remove excess public members 2008-07-04 Andreas Nahr * ReturnMessage.cs: * MethodResponse.cs: * MethodCall.cs: * IRemotingFormatter.cs: * IMethodReturnMessage.cs: * IMethodMessage.cs: * IMethodCallMessage.cs: * ConstructionResponse.cs: * ConstructionCall.cs: Fix parameter name * Header.cs: Ouch! 2007-12-04 Robert Jordan * MethodCall.cs (ResolveMethod): Handle server objects registered with RemotingServices.Marshal (obj, typeof (ISomeInterface)). Fixes #324232. Test case: /trunk/gert/standalone/bug82302/. 2007-11-21 Atsushi Enomoto * CallContext.cs : added missing 2.0 stuff. 2007-10-30 Robert Jordan * MethodCall.cs (ResolveMethod): Lookup the interface using RemotingServices.GetVirtualMethod (). Eliminates the costly GetMethodBaseFromName () call. 2007-09-07 Robert Jordan * MethodCall (ResolveMethod): Handle generic methods in the code that was introduced as a fix for #82240. Fixes #81554. 2007-09-06 Atsushi Enomoto * LogicalCallContext.cs, MethodCall.cs, MethodCallMessageWrapper.cs, IMethodMessage.cs, ReturnMessage.cs, MethodResponse.cs MethodReturnMessageWrapper.cs : couple more of (2.0/1.1) API fixes. 2007-08-15 Atsushi Enomoto * LogicalCallContext.cs IMethodMessage.cs CallContext.cs : [ComVisible]. 2007-07-30 Lluis Sanchez Gual * MethodCall.cs (ResolveMethod): If the method is implemented in an interface, look for the method implementation. Fix for bxc #82240 2007-02-05 Robert Jordan * MethodCall.cs (ResolveMethod): Actually use the type returned by CastTo (). Fixes bug #77191. 2006-12-25 Robert Jordan * MethodCall.cs: Add support for generic methods. * MethodCall.cs (GetTypeNameFromAssemblyQualifiedName): Add support for generic types. * ReturnMessage.cs: Fix bug #80371. 2006-12-18 Lluis Sanchez Gual * StackBuilderSink.cs: Avoid unneeded cast that was causing some cast exceptions. 2006-12-01 Lluis Sanchez Gual * ReturnMessage.cs: When creating an exception message, copy the call context from the call message. 2006-08-04 Lluis Sanchez Gual * MethodCall.cs, CADMessages.cs: Added missing unmarshalling case for IntPtr. When getting the method from the CAD message, check that the same declaring type is loaded in the target domain from the same assembly. If it is not, get the correct type and method for the domain. 2006-05-31 Zoltan Varga * AsyncResult.cs: Add an 'object_data' field which has GC tracking. * AsyncResult.cs: Revert the last change. * AsyncResult.cs: Make 'data' field an object to allow GC tracking. 2006-02-06 Lluis Sanchez Gual * LogicalCallContext.cs, MethodCall.cs, ReturnMessage.cs, MethodResponse.cs: Create a new LogicalCallContext for every message. Fixes #77364 again. 2006-01-31 Lluis Sanchez Gual * LogicalCallContext.cs: Added shared empty call context. * MethodCall.cs: Added better error checking and reporting in the code that resolves methods. * ReturnMessage.cs, MethodResponse.cs, MethodCall.cs: Never return null in LogicalCallContext. If it's null, return an empty context. Based on a patch by Dominic Ullmann that fixes bug #77364. 2005-06-22 Lluis Sanchez Gual * 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 * ReturnMessage.cs: Added some null checks. * MethodReturnMessageWrapper.cs: Added some null checks. Fixed incorrect cast in the constructor. 2005-05-20 Sebastien Pouliot * AsyncResult.cs: Added new fields (required for stack propagation) to match runtime structure. 2005-05-09 Lluis Sanchez Gual * MethodCall.cs: Fix warning. 2004-10-26 Lluis Sanchez Gual * CallContext.cs: In CreateLogicalCallContext, added parameter which specifies if an empty LogicalCallContext needs to be created if there are no context values. 2004-09-27 Lluis Sanchez Gual * MethodCallMessageWrapper.cs: The wrapper has to modify the wrapped message. MS does it. * ReturnMessage.cs: Use TypeName instead of _typeName since now name is lazely constructed. 2004-09-22 Lluis Sanchez Gual * ConstructionCall.cs: Added a Proxy property (which is the proxy that will reference the object being created). * StackBuilderSink.cs: Take into account the forceInternalExecute parameter. 2004-09-11 Ben Maurer * CallContext.cs: Use [ThreadStatic], it is much faster than the Thread.[Get/Set]Data functions 2004-09-11 Ben Maurer * CADMessages.cs: get rid of method / type name, it is not needed * MethodCall.cs: lazily init method / type name. * ReturnMessage.cs: lazily init method / type name, sig. 2004-09-11 Ben Maurer * CADMessages.cs, MethodCall.cs: When doing an x-appdomain call, store the method in a RuntimeMethodHandle. This allows us to avoid the expensive lookup operations that must be done to resolve the method. This makes xsp go from 250 r/s to 450 r/s for me. 2004-09-05 Ben Maurer * MethodCall.cs, CADMessages.cs: String.Copy (x) is the same thing as new string (x.ToCharArray ()), however it involves half the memory allocation 2004-07-22 Lluis Sanchez Gual * MethodCall.cs: Use RemotingServices.GetMethodBaseFromName to get the MethodBase from the method name. This fixes bug #61774. 2004-06-18 Sebastien Pouliot * ReturnMessage.cs: Added IMessage interface to class definition. 2004-06-17 Gert Driesen * ReturnMessage.cs: remove serializable attribute to match MS.NET 2004-05-11 Lluis Sanchez Gual * MethodResponse.cs: Only get the MethodBase from type and method name when requested. 2004-05-11 Lluis Sanchez Gual * MethodResponse.cs: In the serialization constructor, initialize MethodBase using the method name and type name. 2004-05-03 Lluis Sanchez Gual * MethodResponse.cs, ReturnMessage.cs: More null checks. 2004-04-30 Lluis Sanchez Gual * MethodResponse.cs, ReturnMessage.cs: Added null checks. 2004-04-29 Raja R Harinath * MethodResponse.cs (MethodResponse.OutArgCount) (MethodResponse.GetOutArg): Make reference to _args null-safe. 2004-04-28 Lluis Sanchez Gual * CADMessages.cs: Revert last change. It was ok. * MethodResponse.cs, ReturnMessage.cs: Handle output parameters in a different way. The message is constructed from an array that has all parameters, including input parameters (which will be set to null). The Args property returns all arguments. OutArgs returns only the output arguments, which are taken from the provided args list. 2004-04-26 Lluis Sanchez Gual * CADMessages.cs: Marshal the correct return args for the return message. 2004-02-18 Gonzalo Paniagua Javier * AsyncResult.cs: (AsyncWaitHandle): create the handle if not done yet. 2004-01-19 Lluis Sanchez Gual * AsyncResult.cs: Added async_callback field and fixed the callback call. I thought that async_delegate was the callback, but it is not, it is the delegate upon which the async call was invoked. This fixes bug #53020. * StackBuilderSink.cs: If the target object is a proxy, make the call using the Invoke method of the real proxy. 2003-12-23 Lluis Sanchez Gual * ConstructionResponse.cs: Added constructor for exception response. 2003-12-22 Lluis Sanchez Gual * MethodCall.cs: Do not try to resolve the method in the serialization constructor, since the type array may not be yet completely deserialized. This fixes bug #52426. 2003-12-10 Lluis Sanchez Gual * AsyncResult.cs: Call delegate on async call completion. * CADMessages.cs: Removed TODO. 2003-11-28 Dick Porter * MethodCall.cs: Use the char form of IndexOf, so that the comparison is done with the Invariant culture. 2003-11-26 Lluis Sanchez Gual * MethodCall.cs, MethodResponse.cs, ReturnMessage.cs: Implemented HasVarArgs property. 2003-11-25 Lluis Sanchez Gual * AsyncResult.cs, CallContext.cs: Added private constructor. * ReturnMessage.cs: Added parameter array length check. 2003-11-18 Lluis Sanchez Gual * ArgInfo.cs, ClientContextTerminatorSink.cs, ErrorMessage.cs, MethodCall.cs, MethodResponse.cs, MonoMethodMessage.cs, ServerContextTerminatorSink.cs, StackBuilderSink.cs: Fixed class visibility. * CADMessages.cs: Added null reference check in SaveLogicalCallContext. * ISerializationRootObject.cs: Added. 2003-11-17 Lluis Sanchez Gual * StackBuilderSink.cs: Implemented AsyncProcessMessage(). 2003-11-16 Lluis Sanchez Gual * CADMessages.cs: Added methods for setting and getting the logical call context. * ConstructionCall.cs: Fixed signature of some methods. * ConstructionResponse.cs: Fixed signature of constructor and added missing property. * LogicalCallContext.cs: Removed TODO. * MethodCall.cs, MethodResponse.cs: Added support for LogicalCallContext in consturctor. * MethodReturnMessageWrapper.cs: Removed some unneded methods. 2003-11-11 Lluis Sanchez Gual * ConstructionCall.cs, ReturnMessage.cs: minor fixes. 2003-10-23 Lluis Sanchez Gual * MethodCall.cs: In the constructor that takes a CADMethodCallMessage object, make sure strings are not reused across domains. 2003-10-08 Lluis Sanchez Gual * CADMessages.cs: added smuggeling argument support for some instances of MarshalByRefObject. This should make the cross-appdomain channel even faster. Some other minor fixes. 2003-10-07 Lluis Sanchez Gual * CADMessages.cs: improved argument smuggeling. Now it supports strings, datetime and arrays of primitive types. This makes CAD much faster. * AsyncResult.cs: Added property to store the call message. 2003-09-11 Lluis Sanchez Gual * ArgInfo.cs: Include parameters with the Out flag in the out parameters list. * CallContext.cs: SetCurrentCallContext now returns the old context, so it can be later restored with new new method RestoreCallContext(). * ReturnMessage.cs: Some fixes in the way the class deals with output parameters, to match MS.NET behavior. 2003-08-28 Lluis Sanchez Gual * MonoMethodMessage.cs: Moved CallType into namespace declaration. 2003-08-25 Lluis Sanchez Gual * AsyncResult.cs: Added method EndInvoke(). Fixed SyncProcessMessage(). * CallContext.cs: Clean current logical context before setting the new values form LogicalCallContext (SetCurrentCallContext). * MonoMethodMessage.cs: Added new CallType field and enum. * StackBuilderSink.cs: Improved error message. 2003-08-20 Lluis Sanchez Gual * MethodCall.cs: Changed exception text to match MS.NET (more or less). * AsyncResult.cs: Added new fields to store async calls results. 2003-08-17 Lluis Sanchez Gual * MethodCall.cs: Throw the right exception if the target object is not found when resolving the target method. 2003-08-17 Lluis Sanchez Gual * CallContext.cs: Fixed bug #47686. 2003-08-14 Lluis Sanchez Gual * CADMessages.cs: Enabled smuggeling of primitive type parameters (as suggested by Patrik). * CallContext.cs: Impplemented. * LogicalCallContext.cs: Implemented. * MonoMethodMessage.cs: Added setter for LogicalCallContext property. 2003-07-25 Lluis Sanchez Gual * ArgInfo.cs: Use Type.IsByRef to check if a parameter is a ref or out parameter. * MethodCall.cs: Improved checking if the requested client type for the target object can be casted to the server type. Now not only checks type name, but also the type hierarchy and implemented interfaces. Also implemented method ToString(). * MethodResponse.cs: Imlemented ToString(). * ReturnMessage.cs: In the exception constructor, allow the request to be null. Implemented ToString(). * StackBuilderSink.cs: Check type of parameters before calling the target method. (a wrong type would make the runtime to crash). 2003-07-23 Lluis Sanchez Gual * MethodDictionary.cs: Fixed Add method. If the property is method property, then there is no need it to the internal properties table. 2003-07-21 Lluis Sanchez Gual * MethodCall.cs: Fixed copy constructor, when the message to copy does not implement IMethodMessage. 2003-07-09 Jean-Marc André * ReturnMessage.cs: Bug fix. GetOutArgName didn't return the right Name for the given out parameter. 2003-05-13 Lluis Sanchez Gual * MethodCall.cs: ResolveMethod now uses the type of the target object (identified by the uri) instead of the type specified by TypeName (only if both types have the same name). 2003-04-10 Lluis Sanchez Gual * AsyncResult.cs: implemented some methods. * ClientContextTerminatorSink.cs: Improved support for Async and OneWay messages. * MonoMethodMessage.cs: Added member needed to support Async messages. * ServerObjectTerminatorSink.cs: Improved support for Async and OneWay messages. 2003-03-21 Lluis Sanchez Gual * CADMessages.cs: removed some warnings. * ClientContextTerminatorSink.cs: added support for dynamic sinks. * ConstructionCall.cs: added internal property IsContextOK. * MethodResponse.cs: fixed management of output parameters. * ServerObjectTerminatorSink.cs: added support for dynamic sinks. 2003-03-03 Lluis Sanchez Gual * ConstructionCall.cs: Added internal constructor. Added setter for activation attributes. Some other minor corrections. * EnvoyTerminatorSink.cs: Message now redirected to current context's client sink chain. * MethodCall.cs: Added method for copying messages. 2003-02-19 Gonzalo Paniagua Javier * MethodCall.cs: (MethodBase): resolve the method if it's not already done. 2003-02-18 Lluis Sanchez Gual * IInternalMessage.cs: Added. Provides some useful methods for method messages. * ServerContextTerminatorSink.cs: Added support for construction messages. * MethodCall.cs: Implemented serialization support. Added support for IInternalMessage. * MethodDictionary.cs: Added support for IInternalMessage. * MethodResponse.cs: Added serialization support. Added support for IInternalMessage. * MonoMethodMessage.cs: Added support for IInternalMessage. * ReturnMessage.cs: Added support for IInternalMessage. * ClientContextTerminatorSink.cs: Added. * ConstructionCall.cs: Added. * ConstructionCallDictionary.cs: Added. * ConstructionResponse.cs: Added. * EnvoyTerminatorSink.cs: Added. 2003-02-07 Patrik Torstensson * CADMessages.cs: Disable smuggeling of objects cross domain, still issues casing remoting to fail. (fixed formating) 2003-02-07 Lluis Sanchez Gual * CADMessages.cs: Some minor changes that allow reuse of ObjRef methods. 2003-02-05 Lluis Sanchez Gual * ReturnMessage.cs, MethodResponse.cs: OutArgs initialized to an empty array when the the message returns an exception. 2003-02-04 Lluis Sanchez Gual * ServerContextTerminatorSink.cs: Modified to work with new types of identities. * ReturnMessage.cs: Removed internal dependence to MonoMethodMessage. It is not needed now. * MonoMethodMessage.cs: Now only has method call keys in the dictionary. * MethodReturnDictionary.cs, MethodCallDictionary.cs: Made public the list of method keys. This list is used in MessageFormatter. * MethodDictionary.cs: Corrected some minor bugs. * MethodCall.cs: minor correction on constructor. 2003-02-03 Patrik Torstensson * MethodResponse.cs: Implemented * MethodCall.cs: added support for Cross appdomain messages, implemented some missing methods. * MethodDictionary.cs: made serializible and added methods to get internal properties. * MonoMethodMessage.cs: internal dictionary is now serializible * ReturnMessage.cs: made serializible * ErrorMessage.cs: typo fix * CADMessage.cs: new file, implements cross appdomain messages, both call and return. Princip of this classes is to move unmutable objects and primitivs between appdomains without marshalling. This increase performance a lot of the cross appdomain channel. 2003-01-29 Lluis Sanchez Gual * ServerContextTerminatorSink.cs: now it forwards messages to the target identity, which knows how to manage each type of service. * StackBuilderSink.cs: added a reference to the target object. 2002-12-28 Patrik Torstensson * RemotingSurrogateSelector.cs: Added serialization support for MBR's. * RemotingSurrogate.cs: Moved ObjRefSurrogate and MBRSurrogate to new file. * ErrorMessage.cs: Dummy used when an exception occours. * MonoMethodMessage.cs: Added Serializable and support for be created with null methods 2002-12-26 Lluis Sanchez Gual * ReturnMessage.cs: Implemented property Properties * RemotingSurrogateSelector.cs: Implemented serialization support for ObjRef. * MonoMethodMessage.cs: Implemented Properties and MethodSignature properties. * MethodReturnMessageWrapper.cs: Implemented. * MethodCallMessageWrapper.cs: Implemented. * MethodCall.cs: Implemented. * Header.cs: Small corrections to make it work. * MethodDictionary.cs: Added. * MethodCallDictionary.cs: Added. * MethodReturnDictionary.cs: Added. * ArgInfo.cs: Added. 2002-12-20 Lluis Sanchez Gual * MonoMethodMessage.cs: Implemented property Uri 2002-12-20 Lluis Sanchez Gual * ServerContextTerminatorSink.cs: Added * ServerObjectTerminatorSink.cs: Added * StackBuilderSink.cs: Added 2002-12-10 Jaime Anguiano Olarra * CallContext.c: Added to the CVS. 2002-08-22 Nick Drochak * RemotingSurrogateSelector.cs (SetRootObject): Function should return void, not object. 2002-08-03 Duncan Mak * MethodCall.cs: * MethodResponse.cs: More visibility fixes. Hopefully this is the last of it. 2002-08-02 Duncan Mak * MethodCall.cs: * MethodCallMessageWrapper.cs: * MethodReturnMessageWrapper.cs: Various visibility fixes. * RemotingSurrogateSelector.cs: Added, replaced RemoteSurrogateSelector. 2002-07-31 Duncan Mak * MethodCallMessageWrapper.cs: * MethodReturnMessageWrapper.cs: Revert the last patch and made it work. Thanks to Gonzalo for reminding me to chain the constructors. 2002-07-31 Duncan Mak * MethodCallMessageWrapper.cs: * MethodReturnMessageWrapper.cs: Remove reference to InternalMessageWrapper. It's probably an MS private class, even though it's visible in the documentation. 2002-07-31 Duncan Mak * InternalMessageWrapper.cs: * MessageSurrogateFilter.cs: * MethodCall.cs: * MethodCallMessageWrapper.cs: * MethodResponse.cs: * MethodReturnMessageWrapper.cs: * RemoteSurrogateSelector.cs: Added to CVS. * MonoMethodMessage.cs: * ReturnMessage.cs: Add set in the Uri property. 2002-07-24 Duncan Mak * OneWayAttribute.cs: Added to CVS. 2002-07-23 Duncan Mak * HeaderHandler.cs: Added. * IRemotingFormatter.cs: Added to CVS. * IMethodMessage.cs: IMethodMessage inherits from IMessage. Thu Apr 4 13:13:20 CEST 2002 Paolo Molaro * IMethodReturnMessage.cs: added IMethodMessage, IMessage interfaces. * ReturnMessage.cs: stubbed out Properties property. 2002-03-21 Dietmar Maurer * AsyncResult.cs: impl. 2002/03/04 Nick Drochak * Header.cs: Change properties into fields where they should be.