From 605d07688b92257384f0b2afdbae7b908d97aeaa Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Tue, 17 Jul 2018 15:31:18 +0200 Subject: [PATCH] src: Use move semantics for NameElement construction --- src/lib/data/name/NameElement.cpp | 16 ++++++++-------- src/lib/data/name/NameElement.h | 6 +++--- src/lib/data/name/NameHierarchy.cpp | 2 +- .../data/parser/cxx/name/CxxFunctionDeclName.cpp | 3 ++- .../cxx/name/CxxStaticFunctionDeclName.cpp | 3 ++- .../data/parser/cxx/name/CxxVariableDeclName.cpp | 3 ++- src/test/StorageTestSuite.h | 4 ++-- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/lib/data/name/NameElement.cpp b/src/lib/data/name/NameElement.cpp index c517bcef..655eb8ec 100644 --- a/src/lib/data/name/NameElement.cpp +++ b/src/lib/data/name/NameElement.cpp @@ -9,9 +9,9 @@ NameElement::Signature::Signature() { } -NameElement::Signature::Signature(const std::wstring& prefix, const std::wstring& postfix) - : m_prefix(prefix) - , m_postfix(postfix) +NameElement::Signature::Signature(std::wstring prefix, std::wstring postfix) + : m_prefix(std::move(prefix)) + , m_postfix(std::move(postfix)) { } @@ -56,14 +56,14 @@ std::wstring NameElement::Signature::getParameterString() const return utility::substrBeforeLast(m_postfix, L')') + L')'; } -NameElement::NameElement(const std::wstring& name) - : m_name(name) +NameElement::NameElement(std::wstring name) + : m_name(std::move(name)) { } -NameElement::NameElement(const std::wstring& name, const Signature& signature) - : m_name(name) - , m_signature(signature) +NameElement::NameElement(std::wstring name, std::wstring prefix, std::wstring postfix) + : m_name(std::move(name)) + , m_signature(std::move(prefix), std::move(postfix)) { } diff --git a/src/lib/data/name/NameElement.h b/src/lib/data/name/NameElement.h index b1955ac6..6ab6cea2 100644 --- a/src/lib/data/name/NameElement.h +++ b/src/lib/data/name/NameElement.h @@ -14,7 +14,7 @@ public: { public: Signature(); - Signature(const std::wstring& prefix, const std::wstring& postfix); + Signature(std::wstring prefix, std::wstring postfix); std::wstring qualifyName(const std::wstring& name) const; bool isValid() const; @@ -28,8 +28,8 @@ public: const std::wstring m_postfix; }; - NameElement(const std::wstring& name); - NameElement(const std::wstring& name, const Signature& signature); + NameElement(std::wstring name); + NameElement(std::wstring name, std::wstring prefix, std::wstring postfix); ~NameElement(); const std::wstring& getName() const; diff --git a/src/lib/data/name/NameHierarchy.cpp b/src/lib/data/name/NameHierarchy.cpp index 141a8858..84f1daa7 100644 --- a/src/lib/data/name/NameHierarchy.cpp +++ b/src/lib/data/name/NameHierarchy.cpp @@ -81,7 +81,7 @@ NameHierarchy NameHierarchy::deserialize(const std::wstring& serializedName) npos += NAME_DELIMITER.size(); } - nameHierarchy.push(std::make_shared(name, NameElement::Signature(prefix, postfix))); + nameHierarchy.push(std::make_shared(std::move(name), std::move(prefix), std::move(postfix))); } return nameHierarchy; diff --git a/src/lib_cxx/data/parser/cxx/name/CxxFunctionDeclName.cpp b/src/lib_cxx/data/parser/cxx/name/CxxFunctionDeclName.cpp index 7ca32c5a..e6e7825a 100644 --- a/src/lib_cxx/data/parser/cxx/name/CxxFunctionDeclName.cpp +++ b/src/lib_cxx/data/parser/cxx/name/CxxFunctionDeclName.cpp @@ -93,7 +93,8 @@ NameHierarchy CxxFunctionDeclName::toNameHierarchy() const NameHierarchy ret = CxxDeclName::toNameHierarchy(); std::shared_ptr nameElement = std::make_shared( ret.back()->getName(), - NameElement::Signature(signaturePrefix, signaturePostfix) + std::move(signaturePrefix), + std::move(signaturePostfix) ); ret.pop(); diff --git a/src/lib_cxx/data/parser/cxx/name/CxxStaticFunctionDeclName.cpp b/src/lib_cxx/data/parser/cxx/name/CxxStaticFunctionDeclName.cpp index 6e7d7513..232cb750 100644 --- a/src/lib_cxx/data/parser/cxx/name/CxxStaticFunctionDeclName.cpp +++ b/src/lib_cxx/data/parser/cxx/name/CxxStaticFunctionDeclName.cpp @@ -57,7 +57,8 @@ NameHierarchy CxxStaticFunctionDeclName::toNameHierarchy() const std::shared_ptr nameElement = std::make_shared( ret.back()->getName(), - NameElement::Signature(sig.getPrefix(), sig.getPostfix() + L" (" + m_translationUnitFileName + L")") + sig.getPrefix(), + sig.getPostfix() + L" (" + m_translationUnitFileName + L")" ); ret.pop(); diff --git a/src/lib_cxx/data/parser/cxx/name/CxxVariableDeclName.cpp b/src/lib_cxx/data/parser/cxx/name/CxxVariableDeclName.cpp index 9234820d..a428e1e1 100644 --- a/src/lib_cxx/data/parser/cxx/name/CxxVariableDeclName.cpp +++ b/src/lib_cxx/data/parser/cxx/name/CxxVariableDeclName.cpp @@ -64,7 +64,8 @@ NameHierarchy CxxVariableDeclName::toNameHierarchy() const NameHierarchy ret = CxxDeclName::toNameHierarchy(); std::shared_ptr nameElement = std::make_shared( ret.back()->getName(), - NameElement::Signature(signaturePrefix, signaturePostfix) + std::move(signaturePrefix), + std::move(signaturePostfix) ); ret.pop(); diff --git a/src/test/StorageTestSuite.h b/src/test/StorageTestSuite.h index b1202926..304bd1aa 100644 --- a/src/test/StorageTestSuite.h +++ b/src/test/StorageTestSuite.h @@ -261,7 +261,7 @@ private: NameHierarchy nameHierarchy = createNameHierarchy(name); std::wstring lastName = nameHierarchy.back()->getName(); nameHierarchy.pop(); - nameHierarchy.push(std::make_shared(lastName, NameElement::Signature(ret, parameters))); + nameHierarchy.push(std::make_shared(lastName, ret, parameters)); return nameHierarchy; } @@ -270,7 +270,7 @@ private: NameHierarchy nameHierarchy(NAME_DELIMITER_CXX); for (std::wstring element: utility::splitToVector(s, nameDelimiterTypeToString(NAME_DELIMITER_CXX))) { - nameHierarchy.push(std::make_shared(element, NameElement::Signature())); + nameHierarchy.push(std::make_shared(element)); } return nameHierarchy; }