forked from qt-creator/qt-creator
QmlProfiler: Disconnect some signals on shutdown
It's a workaround, not a proper solution (as indicated by the SOFT ASSERT: "d->m_profilerState" in file qmlprofilerruncontrol.cpp, line 144 triggering) The state manager (and possibly more) is referenced from potentially running run controls, that are ramped down after the plugin. Task-number: QTCREATORBUG-18736 Change-Id: Ia20b168fe640c818276a777e1d23feab0cacd565 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
@@ -89,7 +89,7 @@ bool QmlProfilerPlugin::initialize(const QStringList &arguments, QString *errorS
|
||||
|
||||
void QmlProfilerPlugin::extensionsInitialized()
|
||||
{
|
||||
(void) new QmlProfilerTool(this);
|
||||
m_profilerTool = new QmlProfilerTool(this);
|
||||
|
||||
addAutoReleasedObject(new QmlProfilerOptionsPage);
|
||||
|
||||
@@ -111,6 +111,8 @@ void QmlProfilerPlugin::extensionsInitialized()
|
||||
|
||||
ExtensionSystem::IPlugin::ShutdownFlag QmlProfilerPlugin::aboutToShutdown()
|
||||
{
|
||||
delete m_profilerTool;
|
||||
|
||||
// Save settings.
|
||||
// Disconnect from signals that are not needed during shutdown
|
||||
// Hide UI (if you add UI that is not in the main window directly)
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
namespace QmlProfiler {
|
||||
namespace Internal {
|
||||
|
||||
class QmlProfilerTool;
|
||||
|
||||
class QmlProfilerPlugin : public ExtensionSystem::IPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -47,6 +49,9 @@ public:
|
||||
static QmlProfilerSettings *globalSettings();
|
||||
|
||||
QList<QObject *> createTestObjects() const override;
|
||||
|
||||
private:
|
||||
QmlProfilerTool *m_profilerTool;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -64,7 +64,7 @@ static QString QmlServerUrl = "QmlServerUrl";
|
||||
class QmlProfilerRunner::QmlProfilerRunnerPrivate
|
||||
{
|
||||
public:
|
||||
QmlProfilerStateManager *m_profilerState = 0;
|
||||
QPointer<QmlProfilerStateManager> m_profilerState;
|
||||
};
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user