summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qsamplecache_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/audio/qsamplecache_p.cpp')
-rw-r--r--src/multimedia/audio/qsamplecache_p.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/multimedia/audio/qsamplecache_p.cpp b/src/multimedia/audio/qsamplecache_p.cpp
index 8043b770c..23c970405 100644
--- a/src/multimedia/audio/qsamplecache_p.cpp
+++ b/src/multimedia/audio/qsamplecache_p.cpp
@@ -119,11 +119,12 @@ QSampleCache::~QSampleCache()
// Killing the loading thread means that no samples can be
// deleted using deleteLater. And some samples that had deleteLater
// already called won't have been processed (m_staleSamples)
- foreach (QSample* sample, m_samples)
- delete sample;
+ for (auto it = m_samples.cbegin(), end = m_samples.cend(); it != end; ++it)
+ delete it.value();
- foreach (QSample* sample, m_staleSamples)
- delete sample; // deleting a sample does affect the m_staleSamples list, but foreach copies it
+ const auto copyStaleSamples = m_staleSamples; //deleting a sample does affect the m_staleSamples list, but we create a copy
+ for (QSample* sample : copyStaleSamples)
+ delete sample;
m_networkAccessManager->deleteLater();
}
@@ -194,8 +195,9 @@ void QSampleCache::setCapacity(qint64 capacity)
if (sample->m_ref == 0) {
unloadSample(sample);
it = m_samples.erase(it);
- } else
- it++;
+ } else {
+ ++it;
+ }
}
}