summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2019-05-17 11:38:48 +0200
committerMarc Mutz <marc.mutz@kdab.com>2019-05-17 11:45:47 +0200
commitc5e889bf90b255db3597cbcb5e21e8843f4b5365 (patch)
treefd6b27a8a58dd36bce56e61b80148ea308161881
parent993863c4527f0565a77d7728446f954732a3c2b8 (diff)
Use some qExchange()
This makes the code more compact and avoids any doubts regarding accesses to the underlying container under iteration, if any. Change-Id: I6cf8a6113f182ae5c4401cb44fce2a3904c67489 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
-rw-r--r--src/client/qwaylanddisplay.cpp6
-rw-r--r--tests/auto/client/shared_old/mocksurface.cpp3
2 files changed, 3 insertions, 6 deletions
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index 41bdf6b05..53f5cfcea 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -167,13 +167,11 @@ QWaylandDisplay::~QWaylandDisplay(void)
if (mSyncCallback)
wl_callback_destroy(mSyncCallback);
- qDeleteAll(mInputDevices);
- mInputDevices.clear();
+ qDeleteAll(qExchange(mInputDevices, {}));
- foreach (QWaylandScreen *screen, mScreens) {
+ for (QWaylandScreen *screen : qExchange(mScreens, {})) {
QWindowSystemInterface::handleScreenRemoved(screen);
}
- mScreens.clear();
qDeleteAll(mWaitingScreens);
#if QT_CONFIG(wayland_datadevice)
diff --git a/tests/auto/client/shared_old/mocksurface.cpp b/tests/auto/client/shared_old/mocksurface.cpp
index 81a5edbd0..e9df5f907 100644
--- a/tests/auto/client/shared_old/mocksurface.cpp
+++ b/tests/auto/client/shared_old/mocksurface.cpp
@@ -149,11 +149,10 @@ void Surface::surface_commit(Resource *resource)
}
}
- foreach (wl_resource *frameCallback, m_frameCallbackList) {
+ for (wl_resource *frameCallback : qExchange(m_frameCallbackList, {})) {
wl_callback_send_done(frameCallback, m_compositor->time());
wl_resource_destroy(frameCallback);
}
- m_frameCallbackList.clear();
}
}