include/tools/bigint.hxx | 2 +- include/tools/multisel.hxx | 6 +++--- sc/source/ui/unoobj/docuno.cxx | 4 ++-- tools/source/generic/bigint.cxx | 11 ++++++++--- tools/source/memtools/multisel.cxx | 21 +++++++++++---------- 5 files changed, 25 insertions(+), 19 deletions(-)
New commits: commit 05e75d86dbac70486306b2d8bccd88fbc51d2906 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Tue Apr 26 21:03:10 2022 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Apr 27 14:02:16 2022 +0200 use more string_view in tools Change-Id: I15ca12f35a66994cb90a0ccf60a1ce0f8efcfecc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133459 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/tools/bigint.hxx b/include/tools/bigint.hxx index 14efb7e69248..ae33a5e67d53 100644 --- a/include/tools/bigint.hxx +++ b/include/tools/bigint.hxx @@ -76,7 +76,7 @@ public: BigInt( sal_uInt32 nVal ); BigInt( sal_Int64 nVal ); BigInt( const BigInt& rBigInt ); - BigInt( const OUString& rString ); + BigInt( std::u16string_view rString ); operator sal_Int16() const; operator sal_uInt16() const; diff --git a/include/tools/multisel.hxx b/include/tools/multisel.hxx index 878080fa5c45..a5c68ca0eb23 100644 --- a/include/tools/multisel.hxx +++ b/include/tools/multisel.hxx @@ -89,7 +89,7 @@ class SAL_WARN_UNUSED TOOLS_DLLPUBLIC StringRangeEnumerator sal_Int32 mnOffset; bool mbValidInput; - bool setRange( const OUString& i_rNewRange ); + bool setRange( std::u16string_view i_rNewRange ); bool insertRange( sal_Int32 nFirst, sal_Int32 nLast, bool bSequence ); void insertJoinedRanges( const std::vector< sal_Int32 >& rNumbers ); bool checkValue( sal_Int32, const o3tl::sorted_vector< sal_Int32 >* i_pPossibleValues = nullptr ) const; @@ -119,7 +119,7 @@ public: friend class StringRangeEnumerator::Iterator; - StringRangeEnumerator( const OUString& i_rInput, + StringRangeEnumerator( std::u16string_view i_rInput, sal_Int32 i_nMinNumber, sal_Int32 i_nMaxNumber, sal_Int32 i_nLogicalOffset = -1 @@ -155,7 +155,7 @@ public: - single number that doesn't fit in [i_nMinNumber,i_nMaxNumber] will be ignored - range that doesn't fit in [i_nMinNumber,i_nMaxNumber] will be adjusted */ - static bool getRangesFromString( const OUString& i_rPageRange, + static bool getRangesFromString( std::u16string_view i_rPageRange, std::vector< sal_Int32 >& o_rPageVector, sal_Int32 i_nMinNumber, sal_Int32 i_nMaxNumber, diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index e2b24d517b83..0f822195364d 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -1787,9 +1787,9 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection, return (nSelectCount > 0) ? nSelectCount : 1; } -static sal_Int32 lcl_GetRendererNum( sal_Int32 nSelRenderer, const OUString& rPagesStr, sal_Int32 nTotalPages ) +static sal_Int32 lcl_GetRendererNum( sal_Int32 nSelRenderer, std::u16string_view rPagesStr, sal_Int32 nTotalPages ) { - if ( rPagesStr.isEmpty() ) + if ( rPagesStr.empty() ) return nSelRenderer; StringRangeEnumerator aRangeEnum( rPagesStr, 0, nTotalPages-1 ); diff --git a/tools/source/generic/bigint.cxx b/tools/source/generic/bigint.cxx index f6627200a61c..51810cab17c2 100644 --- a/tools/source/generic/bigint.cxx +++ b/tools/source/generic/bigint.cxx @@ -475,20 +475,25 @@ BigInt::BigInt( const BigInt& rBigInt ) nVal = rBigInt.nVal; } -BigInt::BigInt( const OUString& rString ) +BigInt::BigInt( std::u16string_view rString ) : nLen(0) { bIsNeg = false; nVal = 0; bool bNeg = false; - const sal_Unicode* p = rString.getStr(); + auto p = rString.begin(); + auto pEnd = rString.end(); + if (p == pEnd) + return; if ( *p == '-' ) { bNeg = true; p++; } - while( *p >= '0' && *p <= '9' ) + if (p == pEnd) + return; + while( p != pEnd && *p >= '0' && *p <= '9' ) { *this *= 10; *this += *p - '0'; diff --git a/tools/source/memtools/multisel.cxx b/tools/source/memtools/multisel.cxx index 1f3f8eb5a23a..c6dd9d8c3146 100644 --- a/tools/source/memtools/multisel.cxx +++ b/tools/source/memtools/multisel.cxx @@ -468,7 +468,7 @@ void MultiSelection::SetTotalRange( const Range& rTotRange ) // StringRangeEnumerator -StringRangeEnumerator::StringRangeEnumerator( const OUString& i_rInput, +StringRangeEnumerator::StringRangeEnumerator( std::u16string_view i_rInput, sal_Int32 i_nMinNumber, sal_Int32 i_nMaxNumber, sal_Int32 i_nLogicalOffset @@ -566,18 +566,19 @@ void StringRangeEnumerator::insertJoinedRanges( } } -bool StringRangeEnumerator::setRange( const OUString& i_rNewRange ) +bool StringRangeEnumerator::setRange( std::u16string_view aNewRange ) { mnCount = 0; maSequence.clear(); - const sal_Unicode* pInput = i_rNewRange.getStr(); + auto pInput = aNewRange.begin(); + auto pInputEnd = aNewRange.end(); OUStringBuffer aNumberBuf( 16 ); std::vector< sal_Int32 > aNumbers; bool bSequence = false; - while( *pInput ) + while( pInput != pInputEnd ) { - while( *pInput >= '0' && *pInput <= '9' ) + while( pInput != pInputEnd && *pInput >= '0' && *pInput <= '9' ) aNumberBuf.append( *pInput++ ); if( !aNumberBuf.isEmpty() ) { @@ -585,7 +586,8 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange ) aNumbers.push_back( nNumber ); bSequence = false; } - + if (pInput == pInputEnd) + break; if( *pInput == '-' ) { bSequence = true; @@ -607,11 +609,10 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange ) aNumbers.clear(); bSequence = false; } - else if( *pInput && *pInput != ' ' ) + else if( *pInput != ' ' ) return false; // parse error - if( *pInput ) - pInput++; + pInput++; } // insert last entries if( bSequence && !aNumbers.empty() ) @@ -710,7 +711,7 @@ StringRangeEnumerator::Iterator StringRangeEnumerator::end( const o3tl::sorted_v return StringRangeEnumerator::Iterator( this, i_pPossibleValues, -1, -1 ); } -bool StringRangeEnumerator::getRangesFromString( const OUString& i_rPageRange, +bool StringRangeEnumerator::getRangesFromString( std::u16string_view i_rPageRange, std::vector< sal_Int32 >& o_rPageVector, sal_Int32 i_nMinNumber, sal_Int32 i_nMaxNumber,