Re: AW: Re: LyX/Q.../Free crash
Christian Ehrlicher <[email protected]> Sun, 09 Oct 2005 19:37:14 +0200
| Newsgroups | gmane.comp.kde.devel.cygwin,gmane.editors.lyx.devel |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [email protected] schrieb: >>>src/kernel/qfontdatabase.cpp, line 913, reads >>> >>> fe = loadEngine(script, fp, request, 0, 0, 0 ); >>> >>>loadEngine() is defined in file src/kernel/qfontdatabase_win.cpp which >>>expects a QFontFamily as fourth parameter. Within loadEngine() (line >>>337), family->rawName.lower() is evaluated. However, we get a >>>segmentation fault since we explicitly pass 0 as parameter. >>> >> >>Angus already told me about this crash but had no time to go deeper. >>Afais it's your fault because qfontdatabase_x11.cpp and >>qfontdatabase_win.cpp (qt4) also don't like NULL there... but it should >>be no problem to check for != NULL. > > > Well, qfontdatabase.cpp, line 913, passes NULL explicitly to loadEngine. Thus, it is not LyX but Q.../Free that causes the crash. However, LyX may cause an execution path that does not occur "normally". > > Could you please check whether qfontdatabase.cpp (Qt4) also passes "0" as fourth parameter to loadEngine? Of course, we could just add a check for 0 in loadEngine and be happy but it may also have some unknown side-effects. this is strange... Qt4.0.1 qfontdatabase.cpp:findFont() ... if (fp) { if (fp->rawMode) { fe = loadEngine(script, fp, request, 0, 0, 0); ... and qfontdatabas_win.cpp:loadEngine() ... if (fp->rawMode) { // will choose a stock font int f, deffnt; <some other things> QString fam = family->rawName.toLower(); ... I think setting fam to "default" in case of family == 0 would be ok, but I really don't know why it works in qt4 ... maybe I should write a testcase trying to crash Qt4 Should be in anon cvs tomorrow, also a fix for the redraw-problem Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFDSVVKnNKwkgf+zVMRAlVaAJ9pcDXPfSYhLO3tjnJxN3MFzFXqDwCgo8p1 W5YiQ0xZoh0LoGrpuBAcl8I= =zyxZ -----END PGP SIGNATURE-----