summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2017-07-05 14:51:13 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2017-09-18 15:13:53 +0000
commit6011e8a9eb828d5ce5ffde3d88253a4871693599 (patch)
treef0030adf6b5cef3357849d06a626411970d21ea6 /src/gui/painting
parent0d409f2d4e51fffebbe65b58265745f41dbd5f98 (diff)
QRegion: explain why there's an apparently unused variable
The variable is there to work around an aliasing issue. Since this code is likely coming straight from Qt 2 or 3, I'm not doing any major modification, just explaining why that variable is necessary and mark it as unused (so that a static analyzer that knows about value classes won't complain that we're creating a QVector without using it). Change-Id: Ie8777563724ec3c0bf97d8bc24e1b184fe26bd2f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qregion.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gui/painting/qregion.cpp b/src/gui/painting/qregion.cpp
index 3fb6f925b3..ba8defbfe3 100644
--- a/src/gui/painting/qregion.cpp
+++ b/src/gui/painting/qregion.cpp
@@ -2281,7 +2281,14 @@ static void miRegionOp(QRegionPrivate &dest,
dest.vectorize();
- QVector<QRect> oldRects = dest.rects;
+ /*
+ * The following calls are going to detach dest.rects. Since dest might be
+ * aliasing *reg1 and/or *reg2, and we could have active iterators on
+ * reg1->rects and reg2->rects (if the regions have more than 1 rectangle),
+ * take a copy of dest.rects to keep those iteractors valid.
+ */
+ const QVector<QRect> destRectsCopy = dest.rects;
+ Q_UNUSED(destRectsCopy);
dest.numRects = 0;