From 9493861305f37d323ccf8dac0d2ecef408e2ab21 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Wed, 13 Jan 2016 16:23:55 +0300 Subject: QSvgIconEngine: fix expensive iteration over QHash::keys() Change-Id: I5bb1c630eff9d484098fcade5da6b1ed3680bc27 Reviewed-by: Joerg Bornemann --- src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp index 2ae711f..2cb2e84 100644 --- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp +++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp @@ -249,8 +249,8 @@ bool QSvgIconEngine::read(QDataStream &in) in >> fileNames >> isCompressed >> *d->svgBuffers; #ifndef QT_NO_COMPRESS if (!isCompressed) { - foreach(int key, d->svgBuffers->keys()) - d->svgBuffers->insert(key, qCompress(d->svgBuffers->value(key))); + for (auto it = d->svgBuffers->begin(), end = d->svgBuffers->end(); it != end; ++it) + it.value() = qCompress(it.value()); } #else if (isCompressed) { @@ -306,15 +306,15 @@ bool QSvgIconEngine::write(QDataStream &out) const QHash svgBuffers; if (d->svgBuffers) svgBuffers = *d->svgBuffers; - foreach(int key, d->svgFiles.keys()) { + for (auto it = d->svgFiles.cbegin(), end = d->svgFiles.cend(); it != end; ++it) { QByteArray buf; - QFile f(d->svgFiles.value(key)); + QFile f(it.value()); if (f.open(QIODevice::ReadOnly)) buf = f.readAll(); #ifndef QT_NO_COMPRESS buf = qCompress(buf); #endif - svgBuffers.insert(key, buf); + svgBuffers.insert(it.key(), buf); } out << d->svgFiles << isCompressed << svgBuffers; if (d->addedPixmaps) -- cgit v1.2.1