[Mono-dev] Embedded API - pinning objects
Robert Jordan
robertj at gmx.net
Mon Jun 29 16:53:14 EDT 2009
Steve Baer wrote:
> Hi,
> I've just started playing with embedding mono in a C++ app so I'll probably
> have plenty more questions.
>
> I'm a little confused about the "lifetime" of a MonoObject*. Say I create a
> MonoObject with the following code
>
> MonoObject* mobj = mono_object_new(domain, mclass);
> mono_object_init(mobj);
>
> Is mobj "pinned" in memory and if so what can I call to release the object?
> -OR-
> Do I need to immediately call mono_gchandle_new on mobj so the pointer stays
> valid while I use it?
You don't need to prevent the object from being GCed if the
object ptr is stored in a local variable, like in your sample.
The object will remain alive until the C function terminates.
In all other cases, a gchandle for the object must be allocated.
Robert
More information about the Mono-devel-list
mailing list