From e077ad0f5fb4a9513d9cd778e5cbb6b6d38ae026 Mon Sep 17 00:00:00 2001
From: Paolo Angelelli <paolo.angelelli@qt.io>
Date: Thu, 8 Feb 2018 12:02:18 +0100
Subject: [PATCH] Preemptively release pendingMapObjects upon Map destruction

In this way QGeoMap::mapObjects doesn't have to return all map objects,
as the user added ones should be covered by m_pendingMapObjects.

Change-Id: I5c850f2fb820629e0c4dd941d13f04cb3684b898
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
---
 src/location/declarativemaps/qdeclarativegeomap.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp
index 9f53c4d88..1bf5ea87b 100644
--- a/src/location/declarativemaps/qdeclarativegeomap.cpp
+++ b/src/location/declarativemaps/qdeclarativegeomap.cpp
@@ -269,6 +269,9 @@ QDeclarativeGeoMap::~QDeclarativeGeoMap()
     delete m_copyrights.data();
     m_copyrights.clear();
 
+    for (auto obj: qAsConst(m_pendingMapObjects))
+        obj->setMap(nullptr); // worst case: going to be setMap(nullptr)'d twice
+
     delete m_map; // map objects get reset here
 }
 
-- 
GitLab