Hey Guys,<br><br>Thanks for the pointers (pun intended). The mono_gchandle api is exactly what I was looking for. With that i can just mono_gchandle_new whenever we store the pointer and mono_gchandle_free in the dealloc or reassignment of the pointer.<br>
<br>Thanks again!<br>Martin<br><br><div class="gmail_quote">On Wed, Jan 14, 2009 at 9:25 AM, Andreas Färber <span dir="ltr">&lt;<a href="mailto:andreas.faerber@web.de">andreas.faerber@web.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
Am 13.01.2009 um 21:10 schrieb Martin Smith:<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
We are working on an application where we&#39;re embedding Mono in an Objective-C application. &nbsp;One of the issues that we&#39;re seeing is that if the GC does not &quot;see&quot; pointers that are stored in Objective-C objects. &nbsp;The side effect is that when we run our applications, the Obj-C objects will have instance variables that will eventually raise a SIGSEV (NullReferenceException) whenever the garbage collector runs.<br>

<br>
Does anyone else have experience with this problem? &nbsp;I know one of the things we could probably do is maintain a data structure that stores all the &quot;live&quot; mono pointers and then write smart pointer classes that explicitly maintained ref counts on these objects, but I&#39;m wondering if there&#39;s an easier way.<br>

</blockquote>
<br></div>
I have successfully used GC handles from Cocoa, locking and obtaining a pointer only when necessary.<br>
<br>
Locking only when needed is important for the future &quot;sgen&quot; collector, which can thus move the objects around while they are not locked.<br><font color="#888888">
<br>
Andreas<br>
</font></blockquote></div><br>