svl/source/numbers/zforfind.cxx | 14 +++++++------- svl/source/numbers/zforfind.hxx | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-)
New commits: commit 3791aff7ba4481cc4a357b7223440bf785469bb3 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Tue Apr 26 17:57:07 2022 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Apr 27 14:01:47 2022 +0200 use string_view in ImpSvNumberInputScan::StringToDouble Change-Id: I53df3f273fd5587b12c509ead1477c2108d7fe75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133456 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx index 52bf1a9d1131..ac9fe7a9851a 100644 --- a/svl/source/numbers/zforfind.cxx +++ b/svl/source/numbers/zforfind.cxx @@ -152,13 +152,13 @@ static void TransformInput( SvNumberFormatter const * pFormatter, OUString& rStr * Only simple unsigned floating point values without any error detection, * decimal separator has to be '.' */ -double ImpSvNumberInputScan::StringToDouble( const OUString& rStr, bool bForceFraction ) +double ImpSvNumberInputScan::StringToDouble( std::u16string_view aStr, bool bForceFraction ) { std::unique_ptr<char[]> bufInHeap; constexpr int bufOnStackSize = 256; char bufOnStack[bufOnStackSize]; char* buf = bufOnStack; - const sal_Int32 bufsize = rStr.getLength() + (bForceFraction ? 2 : 1); + const sal_Int32 bufsize = aStr.size() + (bForceFraction ? 2 : 1); if (bufsize > bufOnStackSize) { bufInHeap = std::make_unique<char[]>(bufsize); @@ -167,9 +167,9 @@ double ImpSvNumberInputScan::StringToDouble( const OUString& rStr, bool bForceFr char* p = buf; if (bForceFraction) *p++ = '.'; - for (sal_Int32 nPos = 0; nPos < rStr.getLength(); ++nPos) + for (size_t nPos = 0; nPos < aStr.size(); ++nPos) { - sal_Unicode c = rStr[nPos]; + sal_Unicode c = aStr[nPos]; if (c == '.' || (c >= '0' && c <= '9')) *p++ = static_cast<char>(c); else @@ -4046,7 +4046,7 @@ bool ImpSvNumberInputScan::IsNumberFormat( const OUString& rString, // s if (eScannedType != SvNumFormatType::SCIENTIFIC) { - fOutNumber = StringToDouble(sResString.makeStringAndClear()); + fOutNumber = StringToDouble(sResString); } else { // append exponent @@ -4106,7 +4106,7 @@ bool ImpSvNumberInputScan::IsNumberFormat( const OUString& rString, // s { sResString = sStrArray[nNums[0]]; sResString.append(sStrArray[nNums[1]]); // integer part - fOutNumber = StringToDouble(sResString.makeStringAndClear()); + fOutNumber = StringToDouble(sResString); } else { @@ -4133,7 +4133,7 @@ bool ImpSvNumberInputScan::IsNumberFormat( const OUString& rString, // s sResString.append(sStrArray[nNums[k]]); } } - fOutNumber = StringToDouble(sResString.makeStringAndClear()); + fOutNumber = StringToDouble(sResString); if (k == nNumericsCnt-2) { diff --git a/svl/source/numbers/zforfind.hxx b/svl/source/numbers/zforfind.hxx index 472cf156ddf9..9c1e9e967ff6 100644 --- a/svl/source/numbers/zforfind.hxx +++ b/svl/source/numbers/zforfind.hxx @@ -193,7 +193,7 @@ private: // decimal separator has to be '.' // If bForceFraction==true the string is taken to be the fractional part // of 0.1234 without the leading 0. (thus being just "1234"). - static double StringToDouble( const OUString& rStr, + static double StringToDouble( std::u16string_view aStr, bool bForceFraction = false ); // Next number/string symbol