[Mono-bugs] [Bug 31265][Maj] Changed - Problems with GCHandle
21 Nov 2002 16:21:14 -0000
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by firstname.lastname@example.org.
--- shadow/31265 Tue Nov 19 08:26:07 2002
+++ shadow/31265.tmp.21318 Thu Nov 21 11:21:14 2002
@@ -73,6 +73,24 @@
I assume the code will break without the threaded finalizer, but the
test is deadlocking too soon to show it.
+------- Additional Comments From email@example.com 2002-11-21 11:21 -------
+As far as I get it the ves_icall_System_GCHandle_GetTargetHandle is
+returing the pointer's offset into a global table and it's type
+stuffed together as a "handle".
+It stores the pointer into the gc_handles array and doesn't store the
+"handle type" anywhere.
+But it so appears that the handle type is needed to actually copy the
+array, when it needs to expand (so it is able to tell the GC the
+That's why I've added an new array : gc_handle_types to paralel the
+pointers array and to store the type for each handle. It's not the
+perfect solution, but it works (or should ;-)
+So you can't actually check the last bit of the original pointer
+instead of it's type - it will be "Las Vegas" style of programming
+The fact that it worked for you IMHO means you were lucky.