diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 6f02f4ad0e1775c4c0a020240e30cdd5da22f962..340d7fa94796656bbf2b033a7cf8444b4aba9ac2 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 d95147698c471fe0456291722a2a20118ac31617..6b6e6e4f999f32decdc2e01bb237710f73b5f396 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