summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Meyer <dev@meh.at>2015-12-19 09:26:49 +0100
committerHarald Meyer <dev@meh.at>2016-01-01 11:39:02 +0000
commit9520c488b0a496baccf8d7037f949b8a5708a490 (patch)
tree1dd662becfec358836c61c1c42daea12d3ac3127
parent270b1edc441564b49084d467c7318294b8823fdc (diff)
downloadqtlocation-9520c488b0a496baccf8d7037f949b8a5708a490.tar.gz
MapPolyline performance improvements
Instead of copying the polyline geometry container object each loop twice in the contains() method the change copies the geometry only once (implicit sharing limits the copying to the container itself). Change-Id: Iee80fa6d49b7e81dea0364b6f9f28a3d2e608d22 Task-number: QTBUG-50060 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
-rw-r--r--src/imports/location/qdeclarativepolylinemapitem.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/imports/location/qdeclarativepolylinemapitem.cpp b/src/imports/location/qdeclarativepolylinemapitem.cpp
index 0708fe2d..280cbdbe 100644
--- a/src/imports/location/qdeclarativepolylinemapitem.cpp
+++ b/src/imports/location/qdeclarativepolylinemapitem.cpp
@@ -843,9 +843,10 @@ QSGNode *QDeclarativePolylineMapItem::updateMapItemPaintNode(QSGNode *oldNode, U
bool QDeclarativePolylineMapItem::contains(const QPointF &point) const
{
+ QVector<QPointF> vertices = geometry_.vertices();
QPolygonF tri;
- for (int i = 0; i < geometry_.vertices().size(); ++i) {
- tri << geometry_.vertices()[i];
+ for (int i = 0; i < vertices.size(); ++i) {
+ tri << vertices[i];
if (tri.size() == 3) {
if (tri.containsPoint(point,Qt::OddEvenFill))
return true;