From 0f80177d988ce8122bf6c4f8225a1f84b110e269 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 17 May 2019 11:38:48 +0200 Subject: [PATCH] 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 --- src/plugins/platforms/wayland/qwaylanddisplay.cpp | 6 ++---- tests/auto/wayland/shared_old/mocksurface.cpp | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/plugins/platforms/wayland/qwaylanddisplay.cpp b/src/plugins/platforms/wayland/qwaylanddisplay.cpp index 41bdf6b056b..53f5cfcea44 100644 --- a/src/plugins/platforms/wayland/qwaylanddisplay.cpp +++ b/src/plugins/platforms/wayland/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/wayland/shared_old/mocksurface.cpp b/tests/auto/wayland/shared_old/mocksurface.cpp index 81a5edbd05f..e9df5f90750 100644 --- a/tests/auto/wayland/shared_old/mocksurface.cpp +++ b/tests/auto/wayland/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(); } }