diff options
author | Eike Rathke <erack@redhat.com> | 2016-05-20 18:21:10 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2016-05-20 18:45:24 +0200 |
commit | ccc49b79a8425138d46e7be2acf3ef43b5aa232f (patch) | |
tree | da00bb1aab11d940286a13c1c2ea3f2719432532 | |
parent | b4c53a6eaeea4cb69244b294e68aa19d4324b0ec (diff) |
use vector replication for single row/column arrays
... also in GetStringFromMatrix() and GetDoubleOrStringFromMatrix(), not only
in GetDoubleFromMatrix().
Change-Id: Idb4bd7d7ed7574cf80d2998d1e5bfa5a6015b833
-rw-r--r-- | sc/source/core/tool/interpr4.cxx | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx index fb172179ecbd..6f3ba055d7d2 100644 --- a/sc/source/core/tool/interpr4.cxx +++ b/sc/source/core/tool/interpr4.cxx @@ -2154,12 +2154,11 @@ svl::SharedString ScInterpreter::GetStringFromMatrix(const ScMatrixRef& pMat) SCSIZE nCols, nRows, nC, nR; pMat->GetDimensions( nCols, nRows); pJumpMatrix->GetPos( nC, nR); - if ( nC < nCols && nR < nRows ) - { + // Use vector replication for single row/column arrays. + if ( (nC < nCols || nCols == 1) && (nR < nRows || nRows == 1) ) return pMat->GetString( *pFormatter, nC, nR); - } - else - SetError( errNoValue); + + SetError( errNoValue); } return svl::SharedString::getEmptyString(); } @@ -2200,7 +2199,8 @@ ScMatValType ScInterpreter::GetDoubleOrStringFromMatrix( SCSIZE nCols, nRows, nC, nR; pMat->GetDimensions( nCols, nRows); pJumpMatrix->GetPos( nC, nR); - if ( nC < nCols && nR < nRows ) + // Use vector replication for single row/column arrays. + if ( (nC < nCols || nCols == 1) && (nR < nRows || nRows == 1) ) { nMatVal = pMat->Get( nC, nR); nMatValType = nMatVal.nType; |