Go to file
Eskil Abrahamsen Blomfeldt 2801db558c Avoid loading and keeping unused fallback font engines
When we request glyphs from fallback fonts, we would potentially
load all fonts on the system into memory. This is especially true
for glyphs that are not supported by any font (or by the last in
the list) in any "Common" script (which e.g. includes CJK).

This would make any application which tried to display unsupported
glyphs use huge amounts of memory for keeping unused fonts cached,
only limited by the number of fonts on the system.

The patch contains two solutions: First, before loading the font,
the multi font engine will be asked whether it needs to be tried
for the given character. By default, this will always be true, so
all fonts will be tried, but with the new font config multi engine
in the platform plugin, it will ask FontConfig whether the font
contains a glyph for the character.

Should the font be loaded and still fail to resolve the character
(which could be the case for other platforms), we will simply
delete it again immediately instead keeping it cached.

Change-Id: I92dfb39289a359f49caa02c2caf8baf66098fb59
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-02-17 05:26:34 +01:00
bin make locateSyncProfile() a "tad" less convoluted 2012-02-10 00:27:44 +01:00
config.tests Fix host endian detection when compiling with sysroot 2012-02-14 02:48:35 +01:00
dist QSql*Model: make indexInQuery() virtual 2012-02-15 02:36:07 +01:00
doc/src Various documentation fixes ported from Qt 4.8 2012-02-15 08:59:29 +01:00
examples Move QtConcurrent into its own module 2012-02-05 17:49:16 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Don't hard-code paths to /usr/X11R6 in linux-mkspecs 2012-02-14 02:48:35 +01:00
qmake Implement QMAKE_SUBSTITUTES.config = verbatim. 2012-02-11 13:30:31 +01:00
src Avoid loading and keeping unused fallback font engines 2012-02-17 05:26:34 +01:00
tests QDebug: Add support for %{pid}, %{appname} and %{threadid} 2012-02-17 05:25:56 +01:00
tools bootstrap configure.exe on windows 2012-02-16 01:56:21 +01:00
util Avoid non-standard indentation of license headers. 2012-01-30 16:40:10 +01:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Update .gitignore to ignore qmake/qmake_pch.pch 2012-02-03 06:05:02 +01:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Reduce PLATFORM_MAC usage in the configure script 2012-02-14 02:48:35 +01:00
configure.bat bootstrap configure.exe on windows 2012-02-16 01:56:21 +01:00
header.BSD Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.FDL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL-ONLY Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
INSTALL Remove Symbian specific code from qtbase. 2012-01-31 07:08:31 +01:00
LGPL_EXCEPTION.txt Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro Add configure, sync.profile, and header.* to OTHER_FILES in qtbase.pro 2012-02-08 07:40:03 +01:00
sync.profile Add qprocessordetection.h 2012-02-08 12:33:11 +01:00