From 8161acac8bc747bde84eca488e88c2c802a6aa7f Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Fri, 5 Jun 2009 11:16:09 +0200 Subject: [PATCH] Fix crash introduced by actualy freeing memory. Reviewed-By: con --- src/plugins/qt4projectmanager/qtversionmanager.cpp | 10 ++++------ src/plugins/qt4projectmanager/qtversionmanager.h | 3 ++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 6f02f4ad0e1..340d7fa9479 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -385,8 +385,7 @@ QtVersion::QtVersion(const QString &name, const QString &path) QtVersion::~QtVersion() { - delete m_toolChain; - m_toolChain = 0; + } QString QtVersion::name() const @@ -853,7 +852,7 @@ void QtVersion::updateQMakeCXX() const ProjectExplorer::ToolChain *QtVersion::toolChain() const { updateToolChain(); - return m_toolChain; + return m_toolChain.data(); } void QtVersion::updateToolChain() const @@ -893,11 +892,10 @@ void QtVersion::updateToolChain() const qDebug()<<"Qt Creator doesn't know about the system includes, nor the systems defines."; } - if (ProjectExplorer::ToolChain::equals(m_test, m_toolChain)) { + if (ProjectExplorer::ToolChain::equals(m_test, m_toolChain.data())) { delete m_test; } else { - delete m_toolChain; - m_toolChain = m_test; + m_toolChain = QSharedPointer<ProjectExplorer::ToolChain>(m_test); } m_toolChainUpToDate = true; diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index d95147698c4..6b6e6e4f999 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -33,6 +33,7 @@ #include <projectexplorer/environment.h> #include <projectexplorer/toolchain.h> +#include <QtCore/QSharedPointer> #include <QtCore/QHash> namespace Qt4ProjectManager { @@ -154,7 +155,7 @@ private: mutable QString m_qmakeCXX; mutable bool m_toolChainUpToDate; - mutable ProjectExplorer::ToolChain *m_toolChain; + mutable QSharedPointer<ProjectExplorer::ToolChain> m_toolChain; }; class QtVersionManager : public QObject -- GitLab