[Mono-bugs] [Bug 78315][Nor] Changed - [PATCH][WIN32] Crash in 3 line System.Windows.Forms program
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Sep 6 16:10:43 EDT 2006
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 kornelpal at gmail.com.
http://bugzilla.ximian.com/show_bug.cgi?id=78315
--- shadow/78315 2006-09-06 12:33:22.000000000 -0400
+++ shadow/78315.tmp.25458 2006-09-06 16:10:42.000000000 -0400
@@ -327,6 +327,20 @@
Marshal.FreeHGlobal (comInterface);
------- Additional Comments From joncham at gmail.com 2006-09-06 12:33 -------
Robert's suggestion seems to work. Committed and marking as fixed.
+
+------- Additional Comments From kornelpal at gmail.com 2006-09-06 16:10 -------
+The problem was that ManagedToNativeWrapper had a destructor that
+was only called when terminating. COM objects are freed using
+Release so there is no need for a destructor.
+
+~VtableDestructor seems not to be called by the runtime but adding
+if (!Environment.HasShutdownStarted) prevents it from running for
+sure. I added reference counting to COM vtable and will only be
+freed when there are no objects using it.
+
+Some Image objects seem not to be finalized by the GC so in fact COM
+vtable is not freed because GDI+ holds a reference on
+ManagedToNativeWrapper.
More information about the mono-bugs
mailing list