[Mono-bugs] [Bug 78025][Nor] Changed - FontDialog crashes because of the changes in svn r 58381

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Apr 11 15:00:51 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 sebastien at ximian.com.


--- shadow/78025	2006-04-05 15:25:43.000000000 -0400
+++ shadow/78025.tmp.29307	2006-04-11 15:00:51.000000000 -0400
@@ -1,14 +1,14 @@
 Bug#: 78025
 Product: Mono: Class Libraries
 Version: unspecified
+OS: unknown
 OS Details: 
 Status: NEW   
+Severity: Unknown
 Priority: Normal
 Component: Sys.Drawing.
 AssignedTo: peter at novonyx.com                            
 ReportedBy: xenomorph2 at onlinehome.de               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
@@ -172,6 +172,35 @@
         /usr/lib/libmono.so.0(mono_runtime_exec_main+0x67) [0xb7e7da88]
         /usr/lib/libmono.so.0(mono_runtime_run_main+0x188) [0xb7e80bf0]
         /usr/lib/libmono.so.0(mono_jit_exec+0x90) [0xb7e2ab5e]
         /usr/lib/libmono.so.0(mono_main+0x962) [0xb7e2b54f]
         /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xd2) [0xb7bc6ea2]
         mono [0x8048459]
+------- Additional Comments From sebastien at ximian.com  2006-04-11 15:00 -------
+Here's more details for the top of the stack
+        mono(mono_handle_native_sigsegv+0x81) [0x8142071]
+        mono [0x8114cd7]
+        [0xffffe440]
+        /usr/lib/libfontconfig.so.1(FcPatternFindElt+0x14) [0x410e0544]
+        /usr/lib/libfontconfig.so.1(FcPatternGet+0x2c) [0x410e058c]
+        /usr/lib/libfontconfig.so.1(FcPatternGetString+0x32) [0x410e07f2]
+        /usr/local/lib/libgdiplus.so(GdipCreateFont+0x4c) [0x40ebe5cc]
+The original problem (before r58381) is that we leaked memory each
+time we created a new InstalledFontCollection instance (confirmed with
+valgrind). So the patch simply freed the memory (under Linux). Windows
+seems to keep a live copy of the information so there's no leak (and
+the memory shouldn't be freed).
+However we seems to run into a design problem. Some other structures
+depends on the allocated memory (i.e. reference to it), So freeing the
+collection (and the data behind it) cause them to fail.
+A simple solution would be to "leak once" but then it would be
+impossible to update the system's fonts and get an updated list with a
+new instance of InstalledFontCollection (at least without restaring
+the application).
+A more complex solution is to review the font code and ensure each
+object is capable of living on it's own.

More information about the mono-bugs mailing list