[Mono-dev] MonoType trouble when adjusting method signature
Jonathan S. Chambers
Jonathan.Chambers at ansys.com
Sat Jul 8 11:36:27 EDT 2006
Thanks for the reply. What should I use to copy the MonoType with? Should I just expose access to the dup_type method, or just write a specific one for my purpose?
A quick question about memory management then. For this parameter I am allocating memory for the type. For another parameter I know it's always an IntPtr, so I use the type from mono_defaults.int_class->byval_arg. In one case I'm allocating memory, in another I'm not. So it seems I am either going to free memory for the mono_defaults type, or else I will be leaking the memory I allocate (both seem bad)?
From: Zoltan Varga [mailto:vargaz at gmail.com]
Sent: Sat 7/8/2006 10:58 AM
To: Jonathan S. Chambers
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] MonoType trouble when adjusting method signature
Make a copy of klass->byval_arg, set the 'byref' flag, and the OUT
flag in the copy.
On 7/7/06, Jonathan S. Chambers <Jonathan.Chambers at ansys.com> wrote:
> I have to do some adjustments to the method signatures of the native function calls for COM Interop. In most cases, the return type of a managed method on a RCW is really the last parameter of the COM method call. For example:
> double GetDouble();
> int GetDouble(double* val); // the int return value is the standard HRESULT
> In adjusting the signature I have a MonoType* (double in this case) which is the return type. I need to get the corresponding byref version of that MonoType, and apply the PARAM_ATTRIBUTE_OUT attribute to that type's attributes in order to use it as a parameter in the unmanaged method signature. Any advice on how to do this? There is a dup_type method in class.c, but it seems like I'm missing something.
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
More information about the Mono-devel-list