diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-01-13 14:54:48 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2016-01-15 19:22:45 +0000 |
commit | 8fd75739efd49a424e90938a51802f38c8c504e6 (patch) | |
tree | 590edef3fbfb6138f141901a616bb65f4a8bf597 /src/gui/text | |
parent | 4f71654385438a015931a0c7be52f2c7188c9f7d (diff) |
Lock qfontdatabase mutex in qt_fallbacksForFamily
When called from outside of qfontdatabase, the qfontdatabase mutex will
not be locked upon entry to qt_fallbacksForFamily, so we need to add
it to the exported version.
Change-Id: I16a21708d7cca15730c12de3dbeeaab13ffbd315
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 1b9852c20c..aae84dc988 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -838,7 +838,7 @@ QStringList QPlatformFontDatabase::fallbacksForFamily(const QString &family, QFo return retList; } -QStringList qt_fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) +static QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) { QFontDatabasePrivate *db = privateDb(); @@ -870,6 +870,12 @@ QStringList qt_fallbacksForFamily(const QString &family, QFont::Style style, QFo return retList; } +QStringList qt_fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) +{ + QMutexLocker locker(fontDatabaseMutex()); + return fallbacksForFamily(family, style, styleHint, script); +} + static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt); static void initializeDb() @@ -984,7 +990,7 @@ QFontEngine *loadEngine(int script, const QFontDef &request, if (styleHint == QFont::AnyStyle && request.fixedPitch) styleHint = QFont::TypeWriter; - fallbacks += qt_fallbacksForFamily(family->name, QFont::Style(style->key.style), styleHint, QChar::Script(script)); + fallbacks += fallbacksForFamily(family->name, QFont::Style(style->key.style), styleHint, QChar::Script(script)); pfMultiEngine->setFallbackFamiliesList(fallbacks); } @@ -2664,10 +2670,10 @@ QFontEngine *QFontDatabase::findFont(const QFontDef &request, int script) styleHint = QFont::TypeWriter; QStringList fallbacks = request.fallBackFamilies - + qt_fallbacksForFamily(request.family, - QFont::Style(request.style), - styleHint, - QChar::Script(script)); + + fallbacksForFamily(request.family, + QFont::Style(request.style), + styleHint, + QChar::Script(script)); if (script > QChar::Script_Common) fallbacks += QString(); // Find the first font matching the specified script. |