diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-11-16 13:08:16 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-21 06:16:30 +0100 |
commit | a45c4ce878e49c3d2b0e5525fe6b6cbf8cceef99 (patch) | |
tree | 4598c0190ae0ad499e5aea392dcf722d63999a56 /src | |
parent | 2b3328fc4df942954d6b9d7c134d8d55c66d38c5 (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.cpp | 2 |
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()) |