summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfont.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2016-01-25 09:46:55 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2016-01-28 18:24:08 +0000
commit5f472cae71e3f1451d4b78fa9b65f7b15b9a1be1 (patch)
tree2f7ba174f8367d6e85a1dbf014b4cba1965942c5 /src/gui/text/qfont.cpp
parent0f27d11285bbc22c4f440315ba3a9b7627fc449b (diff)
QFontCache: Centralize the engine type safety check
We depend on the assumption QFontCache::findEngine(key) for key.multi=1 returns a font engine of type QFontEngine::Multi; guarantee that by checking it in a single place. Change-Id: I287da4fd62deb22fc5520cde5b0505bc44547609 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/gui/text/qfont.cpp')
-rw-r--r--src/gui/text/qfont.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index bc9da5b564..2c5a0c74fc 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -2809,6 +2809,10 @@ QFontEngine *QFontCache::findEngine(const Key &key)
EngineCache::Iterator it = engineCache.find(key),
end = engineCache.end();
if (it == end) return 0;
+
+ Q_ASSERT(it.value().data != Q_NULLPTR);
+ Q_ASSERT(key.multi == (it.value().data->type() == QFontEngine::Multi));
+
// found... update the hitcount and timestamp
updateHitCountAndTimeStamp(it.value());
@@ -2829,6 +2833,9 @@ void QFontCache::updateHitCountAndTimeStamp(Engine &value)
void QFontCache::insertEngine(const Key &key, QFontEngine *engine, bool insertMulti)
{
+ Q_ASSERT(engine != Q_NULLPTR);
+ Q_ASSERT(key.multi == (engine->type() == QFontEngine::Multi));
+
#ifdef QFONTCACHE_DEBUG
FC_DEBUG("QFontCache: inserting new engine %p, refcount %d", engine, engine->ref.load());
if (!insertMulti && engineCache.contains(key)) {