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