diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2013-09-09 18:53:33 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2013-09-10 11:47:45 -0400 |
commit | f8fe9f0f25787b9d73ec417dd06118e6a72b9631 (patch) | |
tree | 8d3bbc3cc4f2b34e2e1a0476622a7e00061e0e8d /sc | |
parent | 7d0f3695a20df18f5f6e609f70b8d1ef7825302b (diff) |
Move common code blocks to a function.
Change-Id: I1b1aaa0b1dd8cc6e14fbac1981c67a8b63c92c2c
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/tool/formulagroup.cxx | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/sc/source/core/tool/formulagroup.cxx b/sc/source/core/tool/formulagroup.cxx index 0b37b97600cf..5dff3d9476db 100644 --- a/sc/source/core/tool/formulagroup.cxx +++ b/sc/source/core/tool/formulagroup.cxx @@ -83,6 +83,18 @@ void fillMatrix( ScMatrix& rMat, size_t nCol, const double* pNums, size_t nLen ) } } +void flushSegment( + ScMatrix& rMat, size_t nCol, rtl_uString** pHead, rtl_uString** pCur, rtl_uString** pTop ) +{ + size_t nOffset = pHead - pTop; + std::vector<OUString> aStrs; + aStrs.reserve(pCur - pHead); + for (; pHead != pCur; ++pHead) + aStrs.push_back(OUString(*pHead)); + + rMat.PutString(&aStrs[0], aStrs.size(), nCol, nOffset); +} + void fillMatrix( ScMatrix& rMat, size_t nCol, rtl_uString** pStrs, size_t nLen ) { rtl_uString** p = pStrs; @@ -102,13 +114,7 @@ void fillMatrix( ScMatrix& rMat, size_t nCol, rtl_uString** pStrs, size_t nLen ) if (pHead) { // Flush this non-empty segment to the matrix. - size_t nOffset = pHead - pStrs; - std::vector<OUString> aStrs; - aStrs.reserve(p - pHead); - for (; pHead != p; ++pHead) - aStrs.push_back(OUString(*pHead)); - - rMat.PutString(&aStrs[0], aStrs.size(), nCol, nOffset); + flushSegment(rMat, nCol, pHead, p, pStrs); pHead = NULL; } } @@ -116,13 +122,7 @@ void fillMatrix( ScMatrix& rMat, size_t nCol, rtl_uString** pStrs, size_t nLen ) if (pHead) { // Flush last non-empty segment to the matrix. - size_t nOffset = pHead - pStrs; - std::vector<OUString> aStrs; - aStrs.reserve(p - pHead); - for (; pHead != p; ++pHead) - aStrs.push_back(OUString(*pHead)); - - rMat.PutString(&aStrs[0], aStrs.size(), nCol, nOffset); + flushSegment(rMat, nCol, pHead, p, pStrs); } } |