From 3088c9725415d83c7e34999b74a4bfbbe4829c45 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 16 Sep 2014 16:05:51 +0200 Subject: [PATCH] Core: Have the JsExpander take ownership of registered QObjects Change-Id: Ice5f232d5d7bed32b23f6713b7fa44f44a3ea502 Reviewed-by: Eike Ziller --- src/plugins/coreplugin/jsexpander.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/coreplugin/jsexpander.cpp b/src/plugins/coreplugin/jsexpander.cpp index 4645f93d254..a076b6e1271 100644 --- a/src/plugins/coreplugin/jsexpander.cpp +++ b/src/plugins/coreplugin/jsexpander.cpp @@ -44,11 +44,10 @@ namespace Internal { class JsExpanderPrivate { public: - JsExpanderPrivate() : m_utilsExtension(new UtilsJsExtension) { } - ~JsExpanderPrivate() { delete m_utilsExtension; } + ~JsExpanderPrivate() { qDeleteAll(m_registeredObjects); } QScriptEngine m_engine; - UtilsJsExtension *m_utilsExtension; + QList m_registeredObjects; }; } // namespace Internal @@ -57,6 +56,7 @@ static Internal::JsExpanderPrivate *d; void JsExpander::registerQObjectForJs(const QString &name, QObject *obj) { + d->m_registeredObjects.append(obj); QScriptValue jsObj = d->m_engine.newQObject(obj, QScriptEngine::QtOwnership); d->m_engine.globalObject().setProperty(name, jsObj); } @@ -104,7 +104,7 @@ JsExpander::JsExpander() } }); - registerQObjectForJs(QLatin1String("Util"), d->m_utilsExtension); + registerQObjectForJs(QLatin1String("Util"), new Internal::UtilsJsExtension); } JsExpander::~JsExpander()