summaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2009-09-07 06:41:55 (GMT)
committerMichael Brasser <michael.brasser@nokia.com>2009-09-07 06:41:55 (GMT)
commitdb2b45ec980708fe507b224e82d48bbbbf7a542d (patch)
treeb384936119a02bb6453f19b7788edec7ccb6981d /src/declarative
parentc00ad8c6ba4b345b434aaedc7807e20b2fa64d3c (diff)
downloadQt-db2b45ec980708fe507b224e82d48bbbbf7a542d.zip
Qt-db2b45ec980708fe507b224e82d48bbbbf7a542d.tar.gz
Qt-db2b45ec980708fe507b224e82d48bbbbf7a542d.tar.bz2
Fix leak.
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/qml/qmlcompositetypemanager.cpp8
-rw-r--r--src/declarative/qml/qmlcompositetypemanager_p.h1
-rw-r--r--src/declarative/qml/qmlmetaproperty.cpp2
3 files changed, 11 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlcompositetypemanager.cpp b/src/declarative/qml/qmlcompositetypemanager.cpp
index f64547c..4f16bc4 100644
--- a/src/declarative/qml/qmlcompositetypemanager.cpp
+++ b/src/declarative/qml/qmlcompositetypemanager.cpp
@@ -135,6 +135,14 @@ QmlCompositeTypeManager::QmlCompositeTypeManager(QmlEngine *e)
{
}
+QmlCompositeTypeManager::~QmlCompositeTypeManager()
+{
+ for (Components::Iterator iter = components.begin(); iter != components.end();) {
+ (*iter)->release();
+ iter = components.erase(iter);
+ }
+}
+
QmlCompositeTypeData *QmlCompositeTypeManager::get(const QUrl &url)
{
QmlCompositeTypeData *unit = components.value(url.toString());
diff --git a/src/declarative/qml/qmlcompositetypemanager_p.h b/src/declarative/qml/qmlcompositetypemanager_p.h
index cb0fc43..1b28044 100644
--- a/src/declarative/qml/qmlcompositetypemanager_p.h
+++ b/src/declarative/qml/qmlcompositetypemanager_p.h
@@ -73,6 +73,7 @@ class QmlCompositeTypeManager : public QObject
Q_OBJECT
public:
QmlCompositeTypeManager(QmlEngine *);
+ ~QmlCompositeTypeManager();
// Return a QmlCompositeTypeData for url. The QmlCompositeTypeData may be
// cached.
diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp
index f9b222f..fdba79e 100644
--- a/src/declarative/qml/qmlmetaproperty.cpp
+++ b/src/declarative/qml/qmlmetaproperty.cpp
@@ -219,6 +219,7 @@ void QmlMetaPropertyPrivate::initProperty(QObject *obj, const QString &name)
if (enginePrivate && name.at(0).isUpper()) {
// Attached property
+ //### needs to be done in a better way
QmlCompositeTypeData *typeData =
enginePrivate->typeManager.get(context->baseUrl());
@@ -230,6 +231,7 @@ void QmlMetaPropertyPrivate::initProperty(QObject *obj, const QString &name)
if (attachedFunc != -1)
type = QmlMetaProperty::Property | QmlMetaProperty::Attached;
}
+ typeData->release();
}
return;