[Mono-list] lifetime of MonoMethod in mono embedding
robertj at gmx.net
Wed Nov 18 14:47:29 EST 2009
> hey all
> It seems like when using mono_object_new in an embedded application you
> are supposed to use mono_gchandle_new to store a handle to the object so
> that it is not garbage collected when you reference it again.
> 1) what is appropriate value of pinned gboolean to be passed to
> mono_gchandle_new . Does it always need to be passed as TRUE ?
TRUE is only needed if the object may not be moved after
you've got a handle for it. With the current GC it doesn't
matter, but this may change in the future.
> 2) I also have a call a method on this object handle periodically. Is it
> safe to store a pointer to MonoMethod that is returned from
> mono_class_get_method_from_name in your native code. Is MonoMethod* pointer
> effected by the garbage collector. Is there an equivalent of
> mono_gchandle_new for methods ?
MonoMethod* is an unmanaged structure. As such it's not GCed and
there is no "mono_gchandle_new" for it. In general, if an API
needs some kind of freeing, it will be documented. MonoMethods
do not need to be freed.
More information about the Mono-list