summaryrefslogtreecommitdiffstats
path: root/src/core/favicon_manager.cpp
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2016-02-06 12:57:02 +0100
committerPeter Varga <pvarga@inf.u-szeged.hu>2016-02-09 07:54:59 +0000
commit8e5ac243ac774209b77bec42eda2ec43f9c9b04a (patch)
treef9df4f13666b725ecde8f91a24f6b6e1de3998eb /src/core/favicon_manager.cpp
parent682deb2588626ba6bf492476684518fd588aeecb (diff)
Optimize FaviconManager related iterations
- Replace foreach with for - Fix expensive iteration over QMap::keys() and QMap::values() Change-Id: Ia7f6803af7f5e609ec57bc4115bec17f43668937 Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru> Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
Diffstat (limited to 'src/core/favicon_manager.cpp')
-rw-r--r--src/core/favicon_manager.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/core/favicon_manager.cpp b/src/core/favicon_manager.cpp
index f3260b3c4..6cbb8bc1c 100644
--- a/src/core/favicon_manager.cpp
+++ b/src/core/favicon_manager.cpp
@@ -127,14 +127,14 @@ void FaviconManagerPrivate::iconDownloadFinished(int id,
*/
void FaviconManagerPrivate::downloadPendingRequests()
{
- Q_FOREACH (int id, m_pendingRequests.keys()) {
+ for (auto it = m_pendingRequests.cbegin(), end = m_pendingRequests.cend(); it != end; ++it) {
QIcon icon;
- QUrl requestUrl = m_pendingRequests[id];
+ QUrl requestUrl = it.value();
if (isResourceUrl(requestUrl) && !m_icons.contains(requestUrl))
icon = QIcon(requestUrl.toString().remove(0, 3));
- storeIcon(id, icon);
+ storeIcon(it.key(), icon);
}
m_pendingRequests.clear();
@@ -263,12 +263,13 @@ bool FaviconManager::hasAvailableCandidateIcon() const
return m_hasDownloadedIcon || !d->m_inProgressCandidateRequests.isEmpty();
}
-void FaviconManager::update(QList<FaviconInfo> &candidates)
+void FaviconManager::update(const QList<FaviconInfo> &candidates)
{
Q_D(FaviconManager);
updateCandidates(candidates);
- Q_FOREACH (FaviconInfo faviconInfo, m_faviconInfoMap.values()) {
+ for (auto it = m_faviconInfoMap.cbegin(), end = m_faviconInfoMap.cend(); it != end; ++it) {
+ const FaviconInfo &faviconInfo = it.value();
if (!faviconInfo.candidate || faviconInfo.type != FaviconInfo::Favicon)
continue;
@@ -279,9 +280,9 @@ void FaviconManager::update(QList<FaviconInfo> &candidates)
d->downloadPendingRequests();
}
-void FaviconManager::updateCandidates(QList<FaviconInfo> &candidates)
+void FaviconManager::updateCandidates(const QList<FaviconInfo> &candidates)
{
- Q_FOREACH (FaviconInfo candidateFaviconInfo, candidates) {
+ for (FaviconInfo candidateFaviconInfo : candidates) {
QUrl candidateUrl = candidateFaviconInfo.url;
if (m_faviconInfoMap.contains(candidateUrl)) {
m_faviconInfoMap[candidateUrl].candidate = true;
@@ -298,8 +299,8 @@ void FaviconManager::updateCandidates(QList<FaviconInfo> &candidates)
void FaviconManager::resetCandidates()
{
m_hasDownloadedIcon = false;
- Q_FOREACH (const QUrl key, m_faviconInfoMap.keys())
- m_faviconInfoMap[key].candidate = false;
+ for (auto it = m_faviconInfoMap.begin(), end = m_faviconInfoMap.end(); it != end; ++it)
+ it->candidate = false;
}
@@ -313,7 +314,8 @@ FaviconInfo FaviconManager::getProposedFaviconInfo() const
return proposedFaviconInfo;
unsigned bestArea = area(proposedFaviconInfo.size);
- Q_FOREACH (const FaviconInfo faviconInfo, m_faviconInfoMap.values()) {
+ for (auto it = m_faviconInfoMap.cbegin(), end = m_faviconInfoMap.cend(); it != end; ++it) {
+ const FaviconInfo &faviconInfo = it.value();
if (!faviconInfo.candidate || faviconInfo.type != FaviconInfo::Favicon)
continue;
@@ -328,7 +330,8 @@ FaviconInfo FaviconManager::getProposedFaviconInfo() const
FaviconInfo FaviconManager::getFirstFaviconInfo() const
{
- Q_FOREACH (const FaviconInfo faviconInfo, m_faviconInfoMap.values()) {
+ for (auto it = m_faviconInfoMap.cbegin(), end = m_faviconInfoMap.cend(); it != end; ++it) {
+ const FaviconInfo &faviconInfo = it.value();
if (!faviconInfo.candidate || faviconInfo.type != FaviconInfo::Favicon)
continue;