diff options
author | Sérgio Martins <sergio.martins@kdab.com> | 2015-06-01 14:05:41 +0100 |
---|---|---|
committer | Sérgio Martins <sergio.martins@kdab.com> | 2015-06-29 19:31:59 +0000 |
commit | 20147fae60fd062788c51b058ebb70b33d7fd664 (patch) | |
tree | e677f42184ea22f1af510814d11f7afdd6fd027f /src/gui | |
parent | 29e88fd8f066c14a405a52bbfe3715dc3e5e891f (diff) |
Use QVector::reserve() all over the place.
Reduces internal memory fragmentation.
The search criteria was:
QVector::append(), QVector::push_back(), QVector::operator<<()
and QVector::operator+=() calls inside for, do and while loops.
Statements inside ifs and out of loops weren't considered.
Change-Id: Ie5aaf3cdfac938994e6e5dfa5f51de501ed79a0c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/image/qpaintengine_pic.cpp | 1 | ||||
-rw-r--r-- | src/gui/painting/qplatformbackingstore.cpp | 4 | ||||
-rw-r--r-- | src/gui/painting/qtransform.cpp | 4 |
3 files changed, 7 insertions, 2 deletions
diff --git a/src/gui/image/qpaintengine_pic.cpp b/src/gui/image/qpaintengine_pic.cpp index b17fb73133..be2b216509 100644 --- a/src/gui/image/qpaintengine_pic.cpp +++ b/src/gui/image/qpaintengine_pic.cpp @@ -398,6 +398,7 @@ void QPicturePaintEngine::drawPolygon(const QPointF *points, int numPoints, Poly int pos; QPolygonF polygon; + polygon.reserve(numPoints); for (int i=0; i<numPoints; ++i) polygon << points[i]; diff --git a/src/gui/painting/qplatformbackingstore.cpp b/src/gui/painting/qplatformbackingstore.cpp index 62492980de..c1737e7746 100644 --- a/src/gui/painting/qplatformbackingstore.cpp +++ b/src/gui/painting/qplatformbackingstore.cpp @@ -220,7 +220,9 @@ static QRegion deviceRegion(const QRegion ®ion, QWindow *window) return region; QVector<QRect> rects; - foreach (QRect rect, region.rects()) + const QVector<QRect> regionRects = region.rects(); + rects.reserve(regionRects.count()); + foreach (const QRect &rect, regionRects) rects.append(deviceRect(rect, window)); QRegion deviceRegion; diff --git a/src/gui/painting/qtransform.cpp b/src/gui/painting/qtransform.cpp index fca2b72249..a23aabe559 100644 --- a/src/gui/painting/qtransform.cpp +++ b/src/gui/painting/qtransform.cpp @@ -1381,7 +1381,9 @@ static QPolygonF mapProjective(const QTransform &transform, const QPolygonF &pol path = transform.map(path); QPolygonF result; - for (int i = 0; i < path.elementCount(); ++i) + const int elementCount = path.elementCount(); + result.reserve(elementCount); + for (int i = 0; i < elementCount; ++i) result << path.elementAt(i); return result; } |