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

Reply via email to