diff --git a/src/plugins/baremetal/iarewtoolchain.cpp b/src/plugins/baremetal/iarewtoolchain.cpp index 5e3f81f85b5..dda9e47e00c 100644 --- a/src/plugins/baremetal/iarewtoolchain.cpp +++ b/src/plugins/baremetal/iarewtoolchain.cpp @@ -309,7 +309,7 @@ public: void addToEnvironment(Environment &env) const final; QList createOutputParsers() const final; - QVariantMap toMap() const final; + void toMap(QVariantMap &data) const final; bool fromMap(const QVariantMap &data) final; std::unique_ptr createConfigurationWidget() final; @@ -404,11 +404,10 @@ QList IarToolChain::createOutputParsers() const return {new IarParser()}; } -QVariantMap IarToolChain::toMap() const +void IarToolChain::toMap(QVariantMap &data) const { - QVariantMap data = ToolChain::toMap(); + ToolChain::toMap(data); data.insert(compilerPlatformCodeGenFlagsKeyC, m_extraCodeModelFlags); - return data; } bool IarToolChain::fromMap(const QVariantMap &data) diff --git a/src/plugins/baremetal/keiltoolchain.cpp b/src/plugins/baremetal/keiltoolchain.cpp index 3da4c04248a..9257a8d781c 100644 --- a/src/plugins/baremetal/keiltoolchain.cpp +++ b/src/plugins/baremetal/keiltoolchain.cpp @@ -449,7 +449,7 @@ public: QList createOutputParsers() const final { return {new KeilParser}; } - QVariantMap toMap() const final; + void toMap(QVariantMap &data) const final; bool fromMap(const QVariantMap &data) final; std::unique_ptr createConfigurationWidget() final; @@ -527,11 +527,10 @@ void KeilToolChain::addToEnvironment(Environment &env) const } -QVariantMap KeilToolChain::toMap() const +void KeilToolChain::toMap(QVariantMap &data) const { - QVariantMap data = ToolChain::toMap(); + ToolChain::toMap(data); data.insert(compilerPlatformCodeGenFlagsKeyC, m_extraCodeModelFlags); - return data; } bool KeilToolChain::fromMap(const QVariantMap &data) diff --git a/src/plugins/projectexplorer/customtoolchain.cpp b/src/plugins/projectexplorer/customtoolchain.cpp index 9c7ab0a4088..c15ade15c08 100644 --- a/src/plugins/projectexplorer/customtoolchain.cpp +++ b/src/plugins/projectexplorer/customtoolchain.cpp @@ -217,9 +217,9 @@ QString CustomToolChain::mkspecs() const return m_mkspecs.join(','); } -QVariantMap CustomToolChain::toMap() const +void CustomToolChain::toMap(QVariantMap &data) const { - QVariantMap data = ToolChain::toMap(); + ToolChain::toMap(data); data.insert(QLatin1String(makeCommandKeyC), m_makeCommand.toString()); QStringList macros = Utils::transform(m_predefinedMacros, [](const Macro &m) { return QString::fromUtf8(m.toByteArray()); }); data.insert(QLatin1String(predefinedMacrosKeyC), macros); @@ -227,8 +227,6 @@ QVariantMap CustomToolChain::toMap() const data.insert(QLatin1String(cxx11FlagsKeyC), m_cxx11Flags); data.insert(QLatin1String(mkspecsKeyC), mkspecs()); data.insert(QLatin1String(outputParserKeyC), m_outputParserId.toSetting()); - - return data; } bool CustomToolChain::fromMap(const QVariantMap &data) diff --git a/src/plugins/projectexplorer/customtoolchain.h b/src/plugins/projectexplorer/customtoolchain.h index 3da4dfd9160..b01850a43cd 100644 --- a/src/plugins/projectexplorer/customtoolchain.h +++ b/src/plugins/projectexplorer/customtoolchain.h @@ -56,7 +56,7 @@ public: QStringList headerPathsList() const; void setHeaderPaths(const QStringList &list); - QVariantMap toMap() const override; + void toMap(QVariantMap &data) const override; bool fromMap(const QVariantMap &data) override; std::unique_ptr createConfigurationWidget() override; diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index f69ab0afc8f..c6f74d565b3 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -795,14 +795,13 @@ QStringList GccToolChain::platformLinkerFlags() const return m_platformLinkerFlags; } -QVariantMap GccToolChain::toMap() const +void GccToolChain::toMap(QVariantMap &data) const { - QVariantMap data = ToolChain::toMap(); + ToolChain::toMap(data); data.insert(compilerPlatformCodeGenFlagsKeyC, m_platformCodeGenFlags); data.insert(compilerPlatformLinkerFlagsKeyC, m_platformLinkerFlags); data.insert(originalTargetTripleKeyC, m_originalTargetTriple); data.insert(supportedAbisKeyC, Utils::transform(m_supportedAbis, &Abi::toString)); - return data; } bool GccToolChain::fromMap(const QVariantMap &data) @@ -1713,12 +1712,11 @@ std::unique_ptr ClangToolChain::createConfigurationWidget return std::make_unique(this); } -QVariantMap ClangToolChain::toMap() const +void ClangToolChain::toMap(QVariantMap &data) const { - QVariantMap data = GccToolChain::toMap(); + GccToolChain::toMap(data); data.insert(parentToolChainIdKeyC, m_parentToolChainId); data.insert(priorityKeyC, m_priority); - return data; } bool ClangToolChain::fromMap(const QVariantMap &data) diff --git a/src/plugins/projectexplorer/gcctoolchain.h b/src/plugins/projectexplorer/gcctoolchain.h index 1e6353d0a75..96ab49df3d2 100644 --- a/src/plugins/projectexplorer/gcctoolchain.h +++ b/src/plugins/projectexplorer/gcctoolchain.h @@ -66,7 +66,7 @@ public: QStringList suggestedMkspecList() const override; QList createOutputParsers() const override; - QVariantMap toMap() const override; + void toMap(QVariantMap &data) const override; bool fromMap(const QVariantMap &data) override; std::unique_ptr createConfigurationWidget() override; @@ -206,7 +206,7 @@ public: std::unique_ptr createConfigurationWidget() override; - QVariantMap toMap() const override; + void toMap(QVariantMap &data) const override; bool fromMap(const QVariantMap &data) override; void setPriority(int priority) { m_priority = priority; } diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp index d4d518de44d..095978bb91d 100644 --- a/src/plugins/projectexplorer/msvctoolchain.cpp +++ b/src/plugins/projectexplorer/msvctoolchain.cpp @@ -978,16 +978,15 @@ Abis MsvcToolChain::supportedAbis() const return abis; } -QVariantMap MsvcToolChain::toMap() const +void MsvcToolChain::toMap(QVariantMap &data) const { - QVariantMap data = ToolChain::toMap(); + ToolChain::toMap(data); data.insert(QLatin1String(varsBatKeyC), m_vcvarsBat); if (!m_varsBatArg.isEmpty()) data.insert(QLatin1String(varsBatArgKeyC), m_varsBatArg); Utils::EnvironmentItem::sort(&m_environmentModifications); data.insert(QLatin1String(environModsKeyC), Utils::EnvironmentItem::toVariantList(m_environmentModifications)); - return data; } bool MsvcToolChain::fromMap(const QVariantMap &data) @@ -1728,11 +1727,10 @@ static inline QString llvmDirKey() return QStringLiteral("ProjectExplorer.ClangClToolChain.LlvmDir"); } -QVariantMap ClangClToolChain::toMap() const +void ClangClToolChain::toMap(QVariantMap &data) const { - QVariantMap result = MsvcToolChain::toMap(); - result.insert(llvmDirKey(), m_clangPath.toString()); - return result; + MsvcToolChain::toMap(data); + data.insert(llvmDirKey(), m_clangPath.toString()); } bool ClangClToolChain::fromMap(const QVariantMap &data) diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h index 68f8b9dcf19..77cd18a647a 100644 --- a/src/plugins/projectexplorer/msvctoolchain.h +++ b/src/plugins/projectexplorer/msvctoolchain.h @@ -46,7 +46,7 @@ public: QStringList suggestedMkspecList() const override; Abis supportedAbis() const override; - QVariantMap toMap() const override; + void toMap(QVariantMap &data) const override; bool fromMap(const QVariantMap &data) override; std::unique_ptr createConfigurationWidget() override; @@ -146,7 +146,7 @@ public: void addToEnvironment(Utils::Environment &env) const override; Utils::FilePath compilerCommand() const override; // FIXME: Remove QList createOutputParsers() const override; - QVariantMap toMap() const override; + void toMap(QVariantMap &data) const override; bool fromMap(const QVariantMap &data) override; std::unique_ptr createConfigurationWidget() override; BuiltInHeaderPathsRunner createBuiltInHeaderPathsRunner( diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp index f1a8f80c22d..4373114a028 100644 --- a/src/plugins/projectexplorer/toolchain.cpp +++ b/src/plugins/projectexplorer/toolchain.cpp @@ -226,7 +226,9 @@ ToolChain *ToolChain::clone() const if (f->supportedToolChainType() == d->m_typeId) { ToolChain *tc = f->create(); QTC_ASSERT(tc, return nullptr); - tc->fromMap(toMap()); + QVariantMap data; + toMap(data); + tc->fromMap(data); // New ID for the clone. It's different. tc->d->m_id = QUuid::createUuid().toByteArray(); return tc; @@ -242,9 +244,8 @@ ToolChain *ToolChain::clone() const Make sure to call this function when deriving. */ -QVariantMap ToolChain::toMap() const +void ToolChain::toMap(QVariantMap &result) const { - QVariantMap result; QString idToSave = d->m_typeId.toString() + QLatin1Char(':') + QString::fromUtf8(id()); result.insert(QLatin1String(ID_KEY), idToSave); result.insert(QLatin1String(DISPLAY_NAME_KEY), displayName()); @@ -265,7 +266,6 @@ QVariantMap ToolChain::toMap() const result.insert(d->m_targetAbiKey, d->m_targetAbi.toString()); if (!d->m_compilerCommandKey.isEmpty()) result.insert(d->m_compilerCommandKey, d->m_compilerCommand.toSettings()); - return result; } void ToolChain::toolChainUpdated() diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h index 35cad5333ee..f1a0894ef31 100644 --- a/src/plugins/projectexplorer/toolchain.h +++ b/src/plugins/projectexplorer/toolchain.h @@ -145,7 +145,7 @@ public: // Used by the toolchainmanager to save user-generated tool chains. // Make sure to call this function when deriving! - virtual QVariantMap toMap() const; + virtual void toMap(QVariantMap &map) const; virtual Tasks validateKit(const Kit *k) const; virtual bool isJobCountSupported() const { return true; } diff --git a/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp b/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp index 9354f6e62db..a001f509496 100644 --- a/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp +++ b/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp @@ -220,7 +220,8 @@ void ToolChainSettingsAccessor::saveToolChains(const Toolchains &toolchains, QWi for (const ToolChain *tc : toolchains) { if (!tc || (!tc->isValid() && tc->isAutoDetected())) continue; - const QVariantMap tmp = tc->toMap(); + QVariantMap tmp; + tc->toMap(tmp); if (tmp.isEmpty()) continue; data.insert(QString::fromLatin1(TOOLCHAIN_DATA_KEY) + QString::number(count), tmp); @@ -326,11 +327,10 @@ public: return true; } - QVariantMap toMap() const final + void toMap(QVariantMap &data) const final { - QVariantMap data = ToolChain::toMap(); + ToolChain::toMap(data); data[TestTokenKey] = token; - return data; } QByteArray token; @@ -339,8 +339,6 @@ private: bool m_valid = false; static QList m_toolChains; - -public: }; QList TTC::m_toolChains; diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index 8176b3d17c9..0d8f9a01095 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -131,12 +131,11 @@ QStringList QnxToolChain::suggestedMkspecList() const }; } -QVariantMap QnxToolChain::toMap() const +void QnxToolChain::toMap(QVariantMap &data) const { - QVariantMap data = GccToolChain::toMap(); + GccToolChain::toMap(data); data.insert(QLatin1String(CompilerSdpPath), m_sdpPath.toSettings()); data.insert(QLatin1String(CpuDirKey), m_cpuDir); - return data; } bool QnxToolChain::fromMap(const QVariantMap &data) diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h index e2edb76f8ee..c38249d8546 100644 --- a/src/plugins/qnx/qnxtoolchain.h +++ b/src/plugins/qnx/qnxtoolchain.h @@ -21,7 +21,7 @@ public: void addToEnvironment(Utils::Environment &env) const override; QStringList suggestedMkspecList() const override; - QVariantMap toMap() const override; + void toMap(QVariantMap &data) const override; bool fromMap(const QVariantMap &data) override; Utils::FilePath sdpPath() const;