summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-01-13 14:54:48 +0100
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2016-01-15 19:22:45 +0000
commit8fd75739efd49a424e90938a51802f38c8c504e6 (patch)
tree590edef3fbfb6138f141901a616bb65f4a8bf597
parent4f71654385438a015931a0c7be52f2c7188c9f7d (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>
-rw-r--r--src/gui/text/qfontdatabase.cpp18
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.