diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2015-03-11 13:07:19 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-03-12 07:41:52 +0000 |
commit | 066daf750fcffff8eeae4d5749607501b9aa9a2f (patch) | |
tree | 42066aeb6b558c63ff61d8974860ff631d7d9249 /src/gui/text/qfontengine.cpp | |
parent | 4c022338aa787c216c3afa217987e4125bd15b41 (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.cpp | 3 |
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); |