summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontdatabase.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-12-10 14:28:13 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2016-01-26 14:13:39 +0000
commitc3b261f3f0df0795053ecf23b401d06c0cb6d075 (patch)
tree0168e3045d672adf6537374cc279220fcba5bf7e /src/gui/text/qfontdatabase.cpp
parentf5e02d4128bdd9fef5b0073097050cd20a90bf57 (diff)
Deduplicate and clarify the code a bit
Makes it clear that the engine for font with no Latin WS support won't be cached as "shared" engine and thus shouldn't be normally expected in the cache, so don't even try to find it there. Change-Id: I9e6275b4919607f4057a193b446825c98932bd23 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/gui/text/qfontdatabase.cpp')
-rw-r--r--src/gui/text/qfontdatabase.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index f20f574bc6..15882679cc 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -924,7 +924,10 @@ QFontEngine *loadSingleEngine(int script,
QFontCache::Key key(def,script);
QFontEngine *engine = QFontCache::instance()->findEngine(key);
if (!engine) {
- if (script != QChar::Script_Common) {
+ const bool cacheForCommonScript = script != QChar::Script_Common
+ && (family->writingSystems[QFontDatabase::Latin] & QtFontFamily::Supported) != 0;
+
+ if (Q_LIKELY(cacheForCommonScript)) {
// fast path: check if engine was loaded for another script
key.script = QChar::Script_Common;
engine = QFontCache::instance()->findEngine(key);
@@ -963,7 +966,7 @@ QFontEngine *loadSingleEngine(int script,
QFontCache::instance()->insertEngine(key, engine);
- if (!engine->symbol && script != QChar::Script_Common && (family->writingSystems[QFontDatabase::Latin] & QtFontFamily::Supported) != 0) {
+ if (Q_LIKELY(cacheForCommonScript && !engine->symbol)) {
// cache engine for Common script as well
key.script = QChar::Script_Common;
if (!QFontCache::instance()->findEngine(key))