[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.
http://bugzilla.ximian.com/show_bug.cgi?id=78025
--- 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:
+OS: unknown
OS Details:
Status: NEW
Resolution:
-Severity:
+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