summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fontdatabases
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2016-04-27 15:16:39 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2016-04-27 20:20:14 +0000
commit75bd795c9f6e5b970168605c9d6c41e60b28179a (patch)
tree1c51fa40221b9e0dc9562729bf95d90a97e38438 /src/platformsupport/fontdatabases
parent6493bcaf3ca4d233be4f3bfd8d16d860f47e8aa7 (diff)
Query FC_CAPABILITY once per pattern
Change-Id: I5f1219d5a476f1bd09e8c01847fe886f342b28a0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/platformsupport/fontdatabases')
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index fc04f3ab79..c15e0a1183 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -436,11 +436,12 @@ static void populateFromPattern(FcPattern *pattern)
}
#if FC_VERSION >= 20297
+ FcChar8 *cap = Q_NULLPTR;
for (int j = 1; j < QFontDatabase::WritingSystemsCount; ++j) {
if (writingSystems.supported(QFontDatabase::WritingSystem(j))
&& requiresOpenType(j) && openType[j]) {
- FcChar8 *cap;
- res = FcPatternGetString (pattern, FC_CAPABILITY, 0, &cap);
+ if (cap == Q_NULLPTR)
+ res = FcPatternGetString(pattern, FC_CAPABILITY, 0, &cap);
if (res == FcResultMatch && strstr(reinterpret_cast<const char *>(cap), openType[j]) == 0)
writingSystems.setSupported(QFontDatabase::WritingSystem(j),false);
}