From 14bc65fdffe76a8e96c3ab32d6f08a7642eb55e1 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> Date: Thu, 27 Sep 2012 12:20:54 +0200 Subject: [PATCH] Revert "Make sure to never write kits/Qt/TCs before they were read" This patch causes core dumps in my work-creator while it works fine in my test creator. Revert till I find the reason for this. This reverts commit 5d253b3704378fefd11a05dc6e97d56296ccca5a. Change-Id: Ib9912cda15294c28b9136f79675e0e5694788d5b Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> --- src/plugins/projectexplorer/kitmanager.cpp | 4 ++-- src/plugins/projectexplorer/toolchainmanager.cpp | 13 ++++++------- src/plugins/qtsupport/qtversionmanager.cpp | 7 ++----- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 0dfc3e8e04f..d1aa4b0880a 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -323,8 +323,8 @@ KitManager::KitList KitManager::restoreKits(const Utils::FileName &fileName) QList<Kit *> KitManager::kits(const KitMatcher *m) const { if (!d->m_initialized) { - const_cast<KitManager *>(this)->restoreKits(); d->m_initialized = true; + const_cast<KitManager *>(this)->restoreKits(); } QList<Kit *> result; @@ -356,8 +356,8 @@ Kit *KitManager::find(const KitMatcher *m) const Kit *KitManager::defaultKit() { if (!d->m_initialized) { - restoreKits(); d->m_initialized = true; + restoreKits(); } return d->m_defaultKit; } diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp index 158c7401acb..5a9eb58870f 100644 --- a/src/plugins/projectexplorer/toolchainmanager.cpp +++ b/src/plugins/projectexplorer/toolchainmanager.cpp @@ -39,7 +39,6 @@ #include <extensionsystem/pluginmanager.h> #include <utils/persistentsettings.h> -#include <utils/qtcassert.h> #include <QCoreApplication> #include <QDir> @@ -82,6 +81,7 @@ public: QList<ToolChain *> &toolChains(); ToolChainManager *q; + bool m_initialized; QMap<QString, Utils::FileName> m_abiToDebugger; Utils::PersistentSettingsWriter *m_writer; @@ -90,7 +90,8 @@ private: }; ToolChainManagerPrivate::ToolChainManagerPrivate(ToolChainManager *parent) - : q(parent), m_writer(0) + : q(parent), m_initialized(false), + m_writer(new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(TOOLCHAIN_FILENAME)), QLatin1String("QtCreatorToolChains"))) { } ToolChainManagerPrivate::~ToolChainManagerPrivate() @@ -98,8 +99,10 @@ ToolChainManagerPrivate::~ToolChainManagerPrivate() QList<ToolChain *> &ToolChainManagerPrivate::toolChains() { - if (!m_writer) + if (!m_initialized) { + m_initialized = true; q->restoreToolChains(); + } return m_toolChains; } @@ -133,10 +136,6 @@ ToolChainManager::ToolChainManager(QObject *parent) : void ToolChainManager::restoreToolChains() { - QTC_ASSERT(!d->m_writer, return); - d->m_writer = - new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(TOOLCHAIN_FILENAME)), QLatin1String("QtCreatorToolChains")); - QList<ToolChain *> tcsToRegister; QList<ToolChain *> tcsToCheck; diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index 93cf2eb3a00..81fa5b99b6e 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -177,10 +177,6 @@ QtVersionManager *QtVersionManager::instance() bool QtVersionManager::restoreQtVersions() { - QTC_ASSERT(!m_writer, return false); - m_writer = new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(QTVERSION_FILENAME)), - QLatin1String("QtCreatorQtVersions")); - QList<QtVersionFactory *> factories = ExtensionSystem::PluginManager::getObjects<QtVersionFactory>(); Utils::PersistentSettingsReader reader; @@ -366,7 +362,8 @@ void QtVersionManager::updateFromInstaller(bool emitSignal) void QtVersionManager::saveQtVersions() { if (!m_writer) - return; + m_writer = new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(QTVERSION_FILENAME)), + QLatin1String("QtCreatorQtVersions")); QVariantMap data; data.insert(QLatin1String(QTVERSION_FILE_VERSION_KEY), 1); -- GitLab