summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2014-08-22 21:13:40 +0200
committerMarc Mutz <marc.mutz@kdab.com>2014-09-02 00:43:50 +0200
commitde068472f1368450bad4aff74eec0bc112ae413a (patch)
tree6cbfed8b6e93941d5b1d694abe420f667308218b /src/gui
parent97a32c8440919cc22ab8d9178c3bba09b05fb721 (diff)
QIconLoader: enable an easy case of transactional processing
It's easy to do the work on the side and then commit. This is strongly exception safe, but in Qt, we don't care. But transactional code, when this easy to achieve, is also clearer. Change-Id: I30f1badec7745d62a09af4eede234cb312b373aa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/image/qiconloader.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp
index 12d9f9f14d..44935333fc 100644
--- a/src/gui/image/qiconloader.cpp
+++ b/src/gui/image/qiconloader.cpp
@@ -561,15 +561,16 @@ void QIconLoaderEngine::virtual_hook(int id, void *data)
{
QIconEngine::AvailableSizesArgument &arg
= *reinterpret_cast<QIconEngine::AvailableSizesArgument*>(data);
- arg.sizes.clear();
const int N = m_entries.size();
- arg.sizes.reserve(N);
+ QList<QSize> sizes;
+ sizes.reserve(N);
// Gets all sizes from the DirectoryInfo entries
for (int i = 0; i < N; ++i) {
int size = m_entries.at(i)->dir.size;
- arg.sizes.append(QSize(size, size));
+ sizes.append(QSize(size, size));
}
+ arg.sizes.swap(sizes); // commit
}
break;
case QIconEngine::IconNameHook: