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(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 #include +#include #include namespace Qt4ProjectManager { @@ -154,7 +155,7 @@ private: mutable QString m_qmakeCXX; mutable bool m_toolChainUpToDate; - mutable ProjectExplorer::ToolChain *m_toolChain; + mutable QSharedPointer m_toolChain; }; class QtVersionManager : public QObject