From 9c43f48d118ff869a9a621e1cea1ed2df81d2f37 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Thu, 14 Jan 2016 15:09:36 +0300 Subject: fix expensive iteration over QMap::keys() and QHash::keys() Change-Id: I244aa1ecf006774ebe5fb9bb5b22d37142186e39 Reviewed-by: Yoann Lopes --- src/plugins/gstreamer/camerabin/camerabinmetadata.cpp | 4 ++-- .../gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp | 4 ++-- src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp b/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp index e404065fc..ec2a83a66 100644 --- a/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp @@ -244,8 +244,8 @@ QStringList CameraBinMetaData::availableMetaData() const } QStringList res; - Q_FOREACH (const QByteArray &key, m_values.keys()) { - QString tag = keysMap.value(key); + for (auto it = m_values.keyBegin(), end = m_values.keyEnd(); it != end; ++it) { + QString tag = keysMap.value(*it); if (!tag.isEmpty()) res.append(tag); } diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp index fca38ecf8..79deb9229 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp @@ -142,8 +142,8 @@ void QGstreamerCaptureMetaDataControl::setMetaData(const QString &key, const QVa QStringList QGstreamerCaptureMetaDataControl::availableMetaData() const { QStringList res; - foreach (const QByteArray &key, m_values.keys()) { - QString tag = qt_gstreamerMetaDataKeys()->key(key); + for (auto it = m_values.keyBegin(), end = m_values.keyEnd(); it != end; ++it) { + QString tag = qt_gstreamerMetaDataKeys()->key(*it); if (!tag.isEmpty()) res.append(tag); } diff --git a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp index 8e806dcbf..9f5bb78f6 100644 --- a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp +++ b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp @@ -349,8 +349,9 @@ int QWinRTVideoDeviceSelectorControl::cameraOrientation(const QString &deviceNam QList QWinRTVideoDeviceSelectorControl::deviceNames() { QList devices; - foreach (const QString &device, g->deviceIndex.keys()) - devices.append(device.toUtf8()); + devices.reserve(g->deviceIndex.size()); + for (auto it = g->deviceIndex.keyBegin(), end = g->deviceIndex.keyEnd(); it != end; ++it) + devices.append((*it).toUtf8()); return devices; } -- cgit v1.2.3