diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2009-09-07 06:41:55 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2009-09-07 06:41:55 (GMT) |
commit | db2b45ec980708fe507b224e82d48bbbbf7a542d (patch) | |
tree | b384936119a02bb6453f19b7788edec7ccb6981d /src/declarative | |
parent | c00ad8c6ba4b345b434aaedc7807e20b2fa64d3c (diff) | |
download | Qt-db2b45ec980708fe507b224e82d48bbbbf7a542d.zip Qt-db2b45ec980708fe507b224e82d48bbbbf7a542d.tar.gz Qt-db2b45ec980708fe507b224e82d48bbbbf7a542d.tar.bz2 |
Fix leak.
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/qmlcompositetypemanager.cpp | 8 | ||||
-rw-r--r-- | src/declarative/qml/qmlcompositetypemanager_p.h | 1 | ||||
-rw-r--r-- | src/declarative/qml/qmlmetaproperty.cpp | 2 |
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; |