formula/source/core/api/vectortoken.cxx     |    6 +++---
 include/formula/vectortoken.hxx             |    2 +-
 sc/source/core/data/grouptokenconverter.cxx |    3 ++-
 3 files changed, 6 insertions(+), 5 deletions(-)

New commits:
commit 6a3cb1545290d822455b7c3259702a1d1afc8ef9
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Sun Oct 10 20:36:27 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Oct 11 12:19:03 2021 +0200

    loplugin:moveparam in formula
    
    Change-Id: I358f5e8031c235be76bb96591bf33f59a39b00ba
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123350
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/formula/source/core/api/vectortoken.cxx 
b/formula/source/core/api/vectortoken.cxx
index b4bc14370a7d..c1bd52157795 100644
--- a/formula/source/core/api/vectortoken.cxx
+++ b/formula/source/core/api/vectortoken.cxx
@@ -64,10 +64,10 @@ size_t SingleVectorRefToken::GetArrayLength() const
 }
 
 DoubleVectorRefToken::DoubleVectorRefToken(
-    const std::vector<VectorRefArray>& rArrays, size_t nArrayLength,
+    std::vector<VectorRefArray>&& rArrays, size_t nArrayLength,
     size_t nRefRowSize, bool bStartFixed, bool bEndFixed ) :
     FormulaToken(svDoubleVectorRef, ocPush),
-    maArrays(rArrays), mnArrayLength(nArrayLength),
+    maArrays(std::move(rArrays)), mnArrayLength(nArrayLength),
     mnRefRowSize(nRefRowSize), mbStartFixed(bStartFixed), mbEndFixed(bEndFixed)
 {
     SAL_INFO("formula.core", "Created DoubleVectorRefToken nArrayLength=" << 
nArrayLength);
@@ -76,7 +76,7 @@ DoubleVectorRefToken::DoubleVectorRefToken(
 FormulaToken* DoubleVectorRefToken::Clone() const
 {
     return new DoubleVectorRefToken(
-        maArrays, mnArrayLength, mnRefRowSize, mbStartFixed, mbEndFixed);
+        std::vector(maArrays), mnArrayLength, mnRefRowSize, mbStartFixed, 
mbEndFixed);
 }
 
 const std::vector<VectorRefArray>& DoubleVectorRefToken::GetArrays() const
diff --git a/include/formula/vectortoken.hxx b/include/formula/vectortoken.hxx
index 26830bf6588c..046d71faf3ee 100644
--- a/include/formula/vectortoken.hxx
+++ b/include/formula/vectortoken.hxx
@@ -91,7 +91,7 @@ class FORMULA_DLLPUBLIC DoubleVectorRefToken final : public 
FormulaToken
 
 public:
     DoubleVectorRefToken(
-        const std::vector<VectorRefArray>& rArrays, size_t nArrayLength,
+        std::vector<VectorRefArray>&& rArrays, size_t nArrayLength,
         size_t nRefRowSize, bool bStartFixed, bool bEndFixed );
 
     virtual FormulaToken* Clone() const override;
diff --git a/sc/source/core/data/grouptokenconverter.cxx 
b/sc/source/core/data/grouptokenconverter.cxx
index 6b71284a9325..07fefbccbb55 100644
--- a/sc/source/core/data/grouptokenconverter.cxx
+++ b/sc/source/core/data/grouptokenconverter.cxx
@@ -257,7 +257,8 @@ bool ScGroupTokenConverter::convert( const ScTokenArray& 
rCode, sc::FormulaLogge
                     aArrays.push_back(aArray);
                 }
 
-                formula::DoubleVectorRefToken aTok(aArrays, nArrayLength, 
nRefRowSize, bAbsFirst, bAbsLast);
+                std::vector<formula::VectorRefArray> aArraysTmp = aArrays; 
+                formula::DoubleVectorRefToken aTok( std::move(aArraysTmp), 
nArrayLength, nRefRowSize, bAbsFirst, bAbsLast );
                 mrGroupTokens.AddToken(aTok);
                 rScope.addRefMessage(mrPos, aAbs.aStart, nRequestedLength, 
aArrays);
 

Reply via email to