diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2013-09-09 11:46:50 +0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-10 01:56:20 +0200 |
commit | 106843ad1afa2f5c0aedaa748088d4ebacd6d73d (patch) | |
tree | 4d6059989e0177d71ca8962b86de9dc255c46dea /src/gui/text/qfontengine_qpa.cpp | |
parent | 8b124a7ddefbacea60d2e5d44e39eed4aa83bec5 (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.cpp | 5 |
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()); |