From 066daf750fcffff8eeae4d5749607501b9aa9a2f Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 11 Mar 2015 13:07:19 +0400 Subject: [PATCH] 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 --- src/gui/text/qfontengine.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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);