From b81a52dc382265db0f650db7ae171d4ced0e6fce Mon Sep 17 00:00:00 2001 From: Maks Naumov Date: Thu, 29 Jan 2015 23:33:55 +0200 Subject: [PATCH] Reduce number of QRegion::rects() calls in QBlitterPaintEngine::fillRect() And remove unused variable. Change-Id: Ife98bbe5b02e1d18639c100ed3e58985a2ea9218 Reviewed-by: Marc Mutz --- src/gui/painting/qpaintengine_blitter.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/gui/painting/qpaintengine_blitter.cpp b/src/gui/painting/qpaintengine_blitter.cpp index c5e85cc7c7..a894dab59b 100644 --- a/src/gui/painting/qpaintengine_blitter.cpp +++ b/src/gui/painting/qpaintengine_blitter.cpp @@ -602,12 +602,11 @@ void QBlitterPaintEngine::fillRect(const QRectF &rect, const QBrush &brush) d->pmData->blittable()->drawPixmap(targetRect, pm, srcRect); } } else if (clipData->hasRegionClip) { - QVector clipRects = clipData->clipRegion.rects(); QRect unclippedTargetRect(x, y, blitWidth, blitHeight); - QRegion intersectedRects = clipData->clipRegion.intersected(unclippedTargetRect); - - for (int i = 0; i < intersectedRects.rects().size(); ++i) { - QRect targetRect = intersectedRects.rects().at(i); + const QVector intersectedRects = clipData->clipRegion.intersected(unclippedTargetRect).rects(); + const int intersectedSize = intersectedRects.size(); + for (int i = 0; i < intersectedSize; ++i) { + const QRect &targetRect = intersectedRects.at(i); if (!targetRect.isValid() || targetRect.isEmpty()) continue; int tmpSrcX = srcX + (targetRect.x() - x);