diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-02-23 13:44:12 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-02-26 15:13:34 +0000 |
commit | 5163c11952a39458dd6d7ba10391c2b39ccdf86a (patch) | |
tree | 98c03a10d5c9e51a5aa6f950d642ee6a7b93031f /src/qml/qml | |
parent | a7c0e62b9122a8d210149570be8834401b9b36d3 (diff) |
QtQml: Micro-optimize iterator loops.
Avoid repeated instantiation of end() in loops, use variable instead.
Change-Id: I3bb1c6918cfd16a5dcefbcc03c442e99fe9bf76b
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 7 | ||||
-rw-r--r-- | src/qml/qml/qqmlmetatype.cpp | 6 | ||||
-rw-r--r-- | src/qml/qml/qqmlpropertycache.cpp | 4 | ||||
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 8 |
4 files changed, 13 insertions, 12 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 916f848bbe..70090bd3f9 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -595,6 +595,9 @@ QQmlEnginePrivate::QQmlEnginePrivate(QQmlEngine *e) QQmlEnginePrivate::~QQmlEnginePrivate() { + typedef QHash<QPair<QQmlType *, int>, QQmlPropertyCache *>::Iterator TypePropertyCacheIt; + typedef QHash<int, QQmlCompiledData *>::Iterator CompositeTypesIt; + if (inProgressCreations) qWarning() << QQmlEngine::tr("There are still \"%1\" items in the process of being created at engine destruction.").arg(inProgressCreations); @@ -612,9 +615,9 @@ QQmlEnginePrivate::~QQmlEnginePrivate() if (incubationController) incubationController->d = 0; incubationController = 0; - for(QHash<QPair<QQmlType *, int>, QQmlPropertyCache *>::Iterator iter = typePropertyCache.begin(); iter != typePropertyCache.end(); ++iter) + for (TypePropertyCacheIt iter = typePropertyCache.begin(), end = typePropertyCache.end(); iter != end; ++iter) (*iter)->release(); - for (QHash<int, QQmlCompiledData *>::Iterator iter = m_compositeTypes.begin(); iter != m_compositeTypes.end(); ++iter) + for (CompositeTypesIt iter = m_compositeTypes.begin(), end = m_compositeTypes.end(); iter != end; ++iter) iter.value()->isRegisteredWithEngine = false; delete profiler; } diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp index 6dc18b4b05..9779773b05 100644 --- a/src/qml/qml/qqmlmetatype.cpp +++ b/src/qml/qml/qqmlmetatype.cpp @@ -143,8 +143,7 @@ QQmlMetaTypeData::~QQmlMetaTypeData() for (int i = 0; i < types.count(); ++i) delete types.at(i); - TypeModules::const_iterator i = uriToModule.constBegin(); - for (; i != uriToModule.constEnd(); ++i) + for (TypeModules::const_iterator i = uriToModule.constBegin(), cend = uriToModule.constEnd(); i != cend; ++i) delete *i; } @@ -1096,8 +1095,7 @@ void qmlClearTypeRegistrations() // Declared in qqml.h for (int i = 0; i < data->types.count(); ++i) delete data->types.at(i); - QQmlMetaTypeData::TypeModules::const_iterator i = data->uriToModule.constBegin(); - for (; i != data->uriToModule.constEnd(); ++i) + for (QQmlMetaTypeData::TypeModules::const_iterator i = data->uriToModule.constBegin(), cend = data->uriToModule.constEnd(); i != cend; ++i) delete *i; data->types.clear(); diff --git a/src/qml/qml/qqmlpropertycache.cpp b/src/qml/qml/qqmlpropertycache.cpp index bf38fc79a6..dd1f93ec00 100644 --- a/src/qml/qml/qqmlpropertycache.cpp +++ b/src/qml/qml/qqmlpropertycache.cpp @@ -1053,7 +1053,7 @@ void QQmlPropertyData::markAsOverrideOf(QQmlPropertyData *predecessor) QStringList QQmlPropertyCache::propertyNames() const { QStringList keys; - for (StringCache::ConstIterator iter = stringCache.begin(); iter != stringCache.end(); ++iter) + for (StringCache::ConstIterator iter = stringCache.begin(), cend = stringCache.end(); iter != cend; ++iter) keys.append(iter.key()); return keys; } @@ -1374,7 +1374,7 @@ void QQmlPropertyCache::toMetaObjectBuilder(QMetaObjectBuilder &builder) QList<QPair<QString, QQmlPropertyData *> > properties; QList<QPair<QString, QQmlPropertyData *> > methods; - for (StringCache::ConstIterator iter = stringCache.begin(); iter != stringCache.end(); ++iter) + for (StringCache::ConstIterator iter = stringCache.begin(), cend = stringCache.end(); iter != cend; ++iter) Insert::in(this, properties, methods, iter, iter.value().second); Q_ASSERT(properties.count() == propertyIndexCache.count()); diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index ea9b83cee3..0bf8043cdb 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -1884,11 +1884,11 @@ and qmldir information. */ void QQmlTypeLoader::clearCache() { - for (TypeCache::Iterator iter = m_typeCache.begin(); iter != m_typeCache.end(); ++iter) + for (TypeCache::Iterator iter = m_typeCache.begin(), end = m_typeCache.end(); iter != end; ++iter) (*iter)->release(); - for (ScriptCache::Iterator iter = m_scriptCache.begin(); iter != m_scriptCache.end(); ++iter) + for (ScriptCache::Iterator iter = m_scriptCache.begin(), end = m_scriptCache.end(); iter != end; ++iter) (*iter)->release(); - for (QmldirCache::Iterator iter = m_qmldirCache.begin(); iter != m_qmldirCache.end(); ++iter) + for (QmldirCache::Iterator iter = m_qmldirCache.begin(), end = m_qmldirCache.end(); iter != end; ++iter) (*iter)->release(); qDeleteAll(m_importDirCache); qDeleteAll(m_importQmlDirCache); @@ -1904,7 +1904,7 @@ void QQmlTypeLoader::trimCache() { while (true) { QList<TypeCache::Iterator> unneededTypes; - for (TypeCache::Iterator iter = m_typeCache.begin(); iter != m_typeCache.end(); ++iter) { + for (TypeCache::Iterator iter = m_typeCache.begin(), end = m_typeCache.end(); iter != end; ++iter) { QQmlTypeData *typeData = iter.value(); if (typeData->m_compiledData && typeData->m_compiledData->count() == 1) { // There are no live objects of this type |