src: Use move semantics for NameElement construction

This commit is contained in:
Eberhard Graether
2018-07-17 15:31:18 +02:00
parent 6adcb2b31e
commit 605d07688b
7 changed files with 20 additions and 17 deletions
+8 -8
View File
@@ -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))
{
}
+3 -3
View File
@@ -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;
+1 -1
View File
@@ -81,7 +81,7 @@ NameHierarchy NameHierarchy::deserialize(const std::wstring& serializedName)
npos += NAME_DELIMITER.size();
}
nameHierarchy.push(std::make_shared<NameElement>(name, NameElement::Signature(prefix, postfix)));
nameHierarchy.push(std::make_shared<NameElement>(std::move(name), std::move(prefix), std::move(postfix)));
}
return nameHierarchy;
@@ -93,7 +93,8 @@ NameHierarchy CxxFunctionDeclName::toNameHierarchy() const
NameHierarchy ret = CxxDeclName::toNameHierarchy();
std::shared_ptr<NameElement> nameElement = std::make_shared<NameElement>(
ret.back()->getName(),
NameElement::Signature(signaturePrefix, signaturePostfix)
std::move(signaturePrefix),
std::move(signaturePostfix)
);
ret.pop();
@@ -57,7 +57,8 @@ NameHierarchy CxxStaticFunctionDeclName::toNameHierarchy() const
std::shared_ptr<NameElement> nameElement = std::make_shared<NameElement>(
ret.back()->getName(),
NameElement::Signature(sig.getPrefix(), sig.getPostfix() + L" (" + m_translationUnitFileName + L")")
sig.getPrefix(),
sig.getPostfix() + L" (" + m_translationUnitFileName + L")"
);
ret.pop();
@@ -64,7 +64,8 @@ NameHierarchy CxxVariableDeclName::toNameHierarchy() const
NameHierarchy ret = CxxDeclName::toNameHierarchy();
std::shared_ptr<NameElement> nameElement = std::make_shared<NameElement>(
ret.back()->getName(),
NameElement::Signature(signaturePrefix, signaturePostfix)
std::move(signaturePrefix),
std::move(signaturePostfix)
);
ret.pop();
+2 -2
View File
@@ -261,7 +261,7 @@ private:
NameHierarchy nameHierarchy = createNameHierarchy(name);
std::wstring lastName = nameHierarchy.back()->getName();
nameHierarchy.pop();
nameHierarchy.push(std::make_shared<NameElement>(lastName, NameElement::Signature(ret, parameters)));
nameHierarchy.push(std::make_shared<NameElement>(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<NameElement>(element, NameElement::Signature()));
nameHierarchy.push(std::make_shared<NameElement>(element));
}
return nameHierarchy;
}