summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2013-09-09 18:53:33 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2013-09-10 11:47:45 -0400
commitf8fe9f0f25787b9d73ec417dd06118e6a72b9631 (patch)
tree8d3bbc3cc4f2b34e2e1a0476622a7e00061e0e8d /sc
parent7d0f3695a20df18f5f6e609f70b8d1ef7825302b (diff)
Move common code blocks to a function.
Change-Id: I1b1aaa0b1dd8cc6e14fbac1981c67a8b63c92c2c
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/formulagroup.cxx28
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);
}
}