From cd56e843cc53938111879c21570eaf8225719743 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 7 Dec 2017 09:45:48 +0100 Subject: Android: port away from QRegion::rects() Use being()/end() instead. The region of whose rects() we iterate here is modified in the loop body, so take a copy of the rectangles. Since QVector is still missing a range constructor, use std::vector. This does not cause extra copies, since the QVector inside QRegion would detach anyway, when the QRegion is modified inside the loop. Change-Id: Ib973e825b55d9c9568936cb80180858163d87379 Reviewed-by: BogDan Vatra --- src/plugins/platforms/android/qandroidplatformscreen.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp index 3a79e32abe..7dc8bb8080 100644 --- a/src/plugins/platforms/android/qandroidplatformscreen.cpp +++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp @@ -59,6 +59,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE #ifdef QANDROIDPLATFORMSCREEN_DEBUG @@ -376,8 +378,7 @@ void QAndroidPlatformScreen::doRedraw() || !window->isRaster()) continue; - const QVector visibleRects = visibleRegion.rects(); - for (const QRect &rect : visibleRects) { + for (const QRect &rect : std::vector(visibleRegion.begin(), visibleRegion.end())) { QRect targetRect = window->geometry(); targetRect &= rect; -- cgit v1.2.3