From 75bd795c9f6e5b970168605c9d6c41e60b28179a Mon Sep 17 00:00:00 2001
From: Konstantin Ritt <ritt.ks@gmail.com>
Date: Wed, 27 Apr 2016 15:16:39 +0400
Subject: [PATCH] Query FC_CAPABILITY once per pattern

Change-Id: I5f1219d5a476f1bd09e8c01847fe886f342b28a0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
---
 .../fontdatabases/fontconfig/qfontconfigdatabase.cpp         | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index fc04f3ab79e..c15e0a11833 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);
         }
-- 
GitLab