aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-11-16 13:08:16 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-21 06:16:30 +0100
commita45c4ce878e49c3d2b0e5525fe6b6cbf8cceef99 (patch)
tree4598c0190ae0ad499e5aea392dcf722d63999a56 /src
parent2b3328fc4df942954d6b9d7c134d8d55c66d38c5 (diff)
Don't leak objects when a VisualDataModel is destroyed before a view.
If an item is still referenced by a view when the VisualDataModel is destroyed delete it, otherwise it will leak as the view have no interface to release it and deleting the item won't delete the package. Task-number: QTBUG-22672 Change-Id: I7b89962d724d7a391c97722638e03b7a186b8a8f Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/declarative/items/qquickvisualdatamodel.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/declarative/items/qquickvisualdatamodel.cpp b/src/declarative/items/qquickvisualdatamodel.cpp
index 5cf2d6c9b3..7d0abfcfe0 100644
--- a/src/declarative/items/qquickvisualdatamodel.cpp
+++ b/src/declarative/items/qquickvisualdatamodel.cpp
@@ -457,7 +457,9 @@ QQuickVisualDataModel::QQuickVisualDataModel(QDeclarativeContext *ctxt, QObject
QQuickVisualDataModel::~QQuickVisualDataModel()
{
Q_D(QQuickVisualDataModel);
+
foreach (QQuickVisualDataModelCacheItem *cacheItem, d->m_cache) {
+ delete cacheItem->object;
cacheItem->object = 0;
cacheItem->objectRef = 0;
if (!cacheItem->isReferenced())