From de068472f1368450bad4aff74eec0bc112ae413a Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 22 Aug 2014 21:13:40 +0200 Subject: 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 --- src/gui/image/qiconloader.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/gui/image') 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(data); - arg.sizes.clear(); const int N = m_entries.size(); - arg.sizes.reserve(N); + QList 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: -- cgit v1.2.3