summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontengine_qpa.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2013-09-09 11:46:50 +0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-10 01:56:20 +0200
commit106843ad1afa2f5c0aedaa748088d4ebacd6d73d (patch)
tree4d6059989e0177d71ca8962b86de9dc255c46dea /src/gui/text/qfontengine_qpa.cpp
parent8b124a7ddefbacea60d2e5d44e39eed4aa83bec5 (diff)
Make QFontEngine not derive from QObject
Whilst having the objectName set for each engine is somewhat handy when debugging, deriving from QObject just for that is a wasting of memory in all other cases. This also broke the font engine abstraction by allowing qobject_cast() to access some private data; the only sane way to distinguish engines is querying their Type value. Change-Id: Ib1d195692859eb39089f6d8d9016cb8f9dcc0400 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/gui/text/qfontengine_qpa.cpp')
-rw-r--r--src/gui/text/qfontengine_qpa.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gui/text/qfontengine_qpa.cpp b/src/gui/text/qfontengine_qpa.cpp
index 0a730abcac..9b21d61aad 100644
--- a/src/gui/text/qfontengine_qpa.cpp
+++ b/src/gui/text/qfontengine_qpa.cpp
@@ -687,7 +687,6 @@ void QFontEngineMultiQPA::init(QFontEngine *fe)
engines[0] = fe;
fe->ref.ref();
fontDef = engines[0]->fontDef;
- setObjectName(QStringLiteral("QFontEngineMultiQPA"));
cache_cost = fe->cache_cost;
}
@@ -754,7 +753,9 @@ QFontEngine* QFontEngineMultiQPA::createMultiFontEngine(QFontEngine *fe, int scr
QFontCache::EngineCache::Iterator it = fc->engineCache.find(key),
end = fc->engineCache.end();
while (it != end && it.key() == key) {
- QFontEngineMulti *cachedEngine = qobject_cast<QFontEngineMulti *>(it.value().data);
+ QFontEngineMulti *cachedEngine = 0;
+ if (it.value().data->type() == QFontEngine::Multi)
+ cachedEngine = static_cast<QFontEngineMulti *>(it.value().data);
if (faceIsLocal || (cachedEngine && fe == cachedEngine->engine(0))) {
engine = cachedEngine;
fc->updateHitCountAndTimeStamp(it.value());