sc/source/core/tool/interpr3.cxx | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-)
New commits: commit b756a907eadb803c8014c7a875bb0b0ee32c50b3 Author: Eike Rathke <er...@redhat.com> Date: Mon Apr 20 18:37:49 2015 +0200 error handling per element and propagate, tdf#88547 follow-up Change-Id: Ic7171f3b0c0931e476d8419257b33c760c6283a6 diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx index b97dad5..1dd07f5 100644 --- a/sc/source/core/tool/interpr3.cxx +++ b/sc/source/core/tool/interpr3.cxx @@ -3736,9 +3736,24 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double OUString aStr = pMat->GetString( i ).getString(); if ( aStr.getLength() > 0 ) { + sal_uInt16 nErr = nGlobalError; + nGlobalError = 0; double fVal = ConvertStringToValue( aStr ); if ( !nGlobalError ) + { rArray.push_back( fVal ); + nGlobalError = nErr; + } + else + { + rArray.push_back( CreateDoubleError( errNoValue)); + // Propagate previous error if any, else + // the current #VALUE! error. + if (nErr) + nGlobalError = nErr; + else + nGlobalError = errNoValue; + } } } } commit 2fcd8c2c40481a95bf0cf59b1dd314d84226226c Author: Eike Rathke <er...@redhat.com> Date: Mon Apr 20 18:11:15 2015 +0200 take different paths for performance if bAllowText, tdf#88547 follow-up Change-Id: I93cd943f9b26e6e4bdc7c616e9fc7a46d07a9d91 diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx index 7b21392..b97dad5 100644 --- a/sc/source/core/tool/interpr3.cxx +++ b/sc/source/core/tool/interpr3.cxx @@ -3724,7 +3724,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double for (SCSIZE i = 0; i < nCount; ++i) rArray.push_back( pMat->GetDouble(i)); } - else + else if (bAllowText) { for (SCSIZE i = 0; i < nCount; ++i) { @@ -3732,20 +3732,25 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double rArray.push_back( pMat->GetDouble(i)); else { - if ( bAllowText ) + // tdf#88547 try to convert string to (date)value + OUString aStr = pMat->GetString( i ).getString(); + if ( aStr.getLength() > 0 ) { - // tdf 88547 try to convert string to (date)value - OUString aStr = pMat->GetString( i ).getString(); - if ( aStr.getLength() > 0 ) - { - double fVal = ConvertStringToValue( aStr ); - if ( !nGlobalError ) - rArray.push_back( fVal ); - } + double fVal = ConvertStringToValue( aStr ); + if ( !nGlobalError ) + rArray.push_back( fVal ); } } } } + else + { + for (SCSIZE i = 0; i < nCount; ++i) + { + if ( pMat->IsValue( i ) ) + rArray.push_back( pMat->GetDouble(i)); + } + } } break; default : _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits