summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontengine.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-03-11 13:07:19 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2015-03-12 07:41:52 +0000
commit066daf750fcffff8eeae4d5749607501b9aa9a2f (patch)
tree42066aeb6b558c63ff61d8974860ff631d7d9249 /src/gui/text/qfontengine.cpp
parent4c022338aa787c216c3afa217987e4125bd15b41 (diff)
Unbreak QTextLine::glyphRuns() in a multi-threaded usage scenario
QFontEngineMulti expects the fallback families list to be initialized prior to the first call to engine(int), however in some scenarios, the initialized and cached engine gets destroyed and re-created later, with no fallback families list set, which causes an assertion. Change-Id: I8d19cc91f3a067f6bf77b36bd87010dd967b4c49 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/gui/text/qfontengine.cpp')
-rw-r--r--src/gui/text/qfontengine.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 6834222f08..b028d868b9 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -1622,7 +1622,8 @@ void QFontEngineMulti::setFallbackFamiliesList(const QStringList &fallbackFamili
void QFontEngineMulti::ensureEngineAt(int at)
{
- Q_ASSERT(m_fallbackFamiliesQueried);
+ if (!m_fallbackFamiliesQueried)
+ ensureFallbackFamiliesQueried();
Q_ASSERT(at < m_engines.size());
if (!m_engines.at(at)) {
QFontEngine *engine = loadEngine(at);