aboutsummaryrefslogtreecommitdiffstats
path: root/src/particles
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-01-15 15:08:51 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-01-18 07:57:45 +0000
commit1cbf064cdf6d24ddbb6bf30b08a88ec1bf03d3df (patch)
tree9008055bd3f0071ef947b24d76d5cd403d6cbccd /src/particles
parentf4d1a471bb87dd4d4bb79b10e8dc434d707711bd (diff)
Particles: fix expensive iteration over QHash::keys()
Change-Id: I02755796e3a5c5a3bb39e125a45d968a750e58e1 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/particles')
-rw-r--r--src/particles/qquickimageparticle.cpp7
-rw-r--r--src/particles/qquickparticlesystem.cpp7
2 files changed, 9 insertions, 5 deletions
diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp
index d78a350306..4a79342a89 100644
--- a/src/particles/qquickimageparticle.cpp
+++ b/src/particles/qquickimageparticle.cpp
@@ -1497,9 +1497,10 @@ void QQuickImageParticle::prepareNextFrame(QSGNode **node)
qDebug() << "QQuickImageParticle Feature level: " << perfLevel;
qDebug() << "QQuickImageParticle Nodes: ";
int count = 0;
- foreach (int i, m_nodes.keys()) {
- qDebug() << "Group " << i << " (" << m_system->groupData[i]->size() << " particles)";
- count += m_system->groupData[i]->size();
+ for (auto it = m_nodes.keyBegin(), end = m_nodes.keyEnd(); it != end; ++it) {
+ qDebug() << "Group " << *it << " (" << m_system->groupData[*it]->size()
+ << " particles)";
+ count += m_system->groupData[*it]->size();
}
qDebug() << "Total count: " << count;
}
diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp
index 401d40e275..a91d0df614 100644
--- a/src/particles/qquickparticlesystem.cpp
+++ b/src/particles/qquickparticlesystem.cpp
@@ -995,9 +995,12 @@ void QQuickParticleSystem::createEngine()
//### Solve the losses if size/states go down
foreach (QQuickParticleGroup* group, m_groups) {
bool exists = false;
- foreach (const QString &name, groupIds.keys())
- if (group->name() == name)
+ for (auto it = groupIds.keyBegin(), end = groupIds.keyEnd(); it != end; ++it) {
+ if (group->name() == *it) {
exists = true;
+ break;
+ }
+ }
if (!exists) {
int id = m_nextGroupId++;
QQuickParticleGroupData* gd = new QQuickParticleGroupData(id, this);