[Libreoffice-commits] core.git: Branch 'feature/formula-core-rework' - formula/source include/formula sc/source

Kohei Yoshida kohei.yoshida at gmail.com
Mon Apr 29 14:28:06 PDT 2013


 formula/source/core/api/vectortoken.cxx |   20 +++++++++++---------
 include/formula/vectortoken.hxx         |   17 ++++++-----------
 sc/source/core/data/formulacell.cxx     |    4 ++--
 3 files changed, 19 insertions(+), 22 deletions(-)

New commits:
commit 7b7f0ae1417ea9acade4c45d6500c5ec3530aed4
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Mon Apr 29 17:30:23 2013 -0400

    Let's not use VectorArray struct. There is no use for it.
    
    Change-Id: Ic011143206c13fcbc1b3403bf5b7df46c6934899

diff --git a/formula/source/core/api/vectortoken.cxx b/formula/source/core/api/vectortoken.cxx
index 94a071c..e016fd3 100644
--- a/formula/source/core/api/vectortoken.cxx
+++ b/formula/source/core/api/vectortoken.cxx
@@ -11,24 +11,26 @@
 
 namespace formula {
 
-VectorArray::VectorArray( const double* pArray, size_t nLength ) :
-    mpArray(pArray), mnLength(nLength) {}
-
 SingleVectorRefToken::SingleVectorRefToken( const double* pArray, size_t nLength ) :
-    FormulaToken(svSingleVectorRef, ocPush), maArray(pArray, nLength) {}
+    FormulaToken(svSingleVectorRef, ocPush), mpArray(pArray), mnLength(nLength) {}
 
 FormulaToken* SingleVectorRefToken::Clone() const
 {
-    return new SingleVectorRefToken(maArray.mpArray, maArray.mnLength);
+    return new SingleVectorRefToken(mpArray, mnLength);
+}
+
+const double* SingleVectorRefToken::GetArray() const
+{
+    return mpArray;
 }
 
-const VectorArray& SingleVectorRefToken::GetArray() const
+size_t SingleVectorRefToken::GetLength() const
 {
-    return maArray;
+    return mnLength;
 }
 
 DoubleVectorRefToken::DoubleVectorRefToken(
-    const std::vector<VectorArray>& rArrays, size_t nRowSize, bool bAbsStart, bool bAbsEnd ) :
+    const std::vector<const double*>& rArrays, size_t nRowSize, bool bAbsStart, bool bAbsEnd ) :
     FormulaToken(svDoubleVectorRef, ocPush),
     maArrays(rArrays), mnRowSize(nRowSize), mbAbsStart(bAbsStart), mbAbsEnd(bAbsEnd) {}
 
@@ -37,7 +39,7 @@ FormulaToken* DoubleVectorRefToken::Clone() const
     return new DoubleVectorRefToken(maArrays, mnRowSize, mbAbsStart, mbAbsEnd);
 }
 
-const std::vector<VectorArray>& DoubleVectorRefToken::GetArrays() const
+const std::vector<const double*>& DoubleVectorRefToken::GetArrays() const
 {
     return maArrays;
 }
diff --git a/include/formula/vectortoken.hxx b/include/formula/vectortoken.hxx
index 82051d4..db44355 100644
--- a/include/formula/vectortoken.hxx
+++ b/include/formula/vectortoken.hxx
@@ -14,23 +14,18 @@
 
 namespace formula {
 
-struct VectorArray
+class FORMULA_DLLPUBLIC SingleVectorRefToken : public FormulaToken
 {
     const double* mpArray;
     size_t mnLength;
 
-    VectorArray( const double* pArray, size_t nLength );
-};
-
-class FORMULA_DLLPUBLIC SingleVectorRefToken : public FormulaToken
-{
-    const VectorArray maArray;
 public:
     SingleVectorRefToken( const double* pArray, size_t nLength );
 
     virtual FormulaToken* Clone() const;
 
-    const VectorArray& GetArray() const;
+    const double* GetArray() const;
+    size_t GetLength() const;
 };
 
 /**
@@ -39,7 +34,7 @@ public:
  */
 class FORMULA_DLLPUBLIC DoubleVectorRefToken : public FormulaToken
 {
-    std::vector<VectorArray> maArrays;
+    std::vector<const double*> maArrays;
 
     size_t mnRowSize;
 
@@ -48,11 +43,11 @@ class FORMULA_DLLPUBLIC DoubleVectorRefToken : public FormulaToken
 
 public:
     DoubleVectorRefToken(
-        const std::vector<VectorArray>& rArrays, size_t nRowSize, bool bAbsStart, bool bAbsEnd );
+        const std::vector<const double*>& rArrays, size_t nRowSize, bool bAbsStart, bool bAbsEnd );
 
     virtual FormulaToken* Clone() const;
 
-    const std::vector<VectorArray>& GetArrays() const;
+    const std::vector<const double*>& GetArrays() const;
 };
 
 }
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index 5753e44..ba039b6 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -3063,8 +3063,8 @@ bool ScFormulaCell::InterpretFormulaGroup()
                 case svSingleVectorRef:
                 {
                     const formula::SingleVectorRefToken* p2 = static_cast<const formula::SingleVectorRefToken*>(p);
-                    const formula::VectorArray& rArray = p2->GetArray();
-                    aCode2.AddDouble(rArray.mpArray[i]);
+                    const double* pArray = p2->GetArray();
+                    aCode2.AddDouble(pArray[i]);
                 }
                 break;
                 case svDoubleVectorRef:


More information about the Libreoffice-commits mailing list