diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-07 10:34:54 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-14 08:35:00 +0200 |
commit | cd66852f6dd08631a25d15a1527a647e69ab8ce3 (patch) | |
tree | 0ac1fab1d063046376e31e21d6656ee05eebb627 /vcl | |
parent | 095e1ca4372d90da7fc56051f1271ddd975a9e3a (diff) |
create appendCopy method in OUStringBuffer
so we can avoid temporary copies when appending a substring of an
OUString to the buffer. I would have preferred to call the method just
"append" but that results in ambiguous method errors when the callsite
is something like
sal_Int32 n;
OUStringBuffer s;
s.append(n, 10);
I'm not sure why
Change-Id: I6b5b6641fcb5b26ce2269f89ef06e03c0b6aa76f
Reviewed-on: https://gerrit.libreoffice.org/58666
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/control/field.cxx | 14 | ||||
-rw-r--r-- | vcl/source/control/field2.cxx | 2 | ||||
-rw-r--r-- | vcl/source/control/longcurr.cxx | 2 | ||||
-rw-r--r-- | vcl/source/edit/texteng.cxx | 4 | ||||
-rw-r--r-- | vcl/source/window/menu.cxx | 4 | ||||
-rw-r--r-- | vcl/source/window/printdlg.cxx | 4 |
6 files changed, 15 insertions, 15 deletions
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx index c4ce25c48a5e..7bd182a9e975 100644 --- a/vcl/source/control/field.cxx +++ b/vcl/source/control/field.cxx @@ -112,23 +112,23 @@ bool ImplNumericGetValue( const OUString& rStr, sal_Int64& rValue, // If in "a b/c" format. if(nFracNumPos != -1 ) { - aStr1.append(aStr.getStr(), nFracNumPos); - aStrNum.append(aStr.getStr()+nFracNumPos+1, nFracDivPos-nFracNumPos-1); - aStrDenom.append(aStr.getStr()+nFracDivPos+1); + aStr1.appendCopy(aStr, 0, nFracNumPos); + aStrNum.appendCopy(aStr, nFracNumPos+1, nFracDivPos-nFracNumPos-1); + aStrDenom.appendCopy(aStr, nFracDivPos+1); } // "a/b" format, or not a fraction at all else { - aStrNum.append(aStr.getStr(), nFracDivPos); - aStrDenom.append(aStr.getStr()+nFracDivPos+1); + aStrNum.appendCopy(aStr, 0, nFracDivPos); + aStrDenom.appendCopy(aStr, nFracDivPos+1); } } // parse decimal strings else if ( nDecPos >= 0) { - aStr1.append(aStr.getStr(), nDecPos); - aStr2.append(aStr.getStr()+nDecPos+1); + aStr1.appendCopy(aStr, 0, nDecPos); + aStr2.appendCopy(aStr, nDecPos+1); } else aStr1 = aStr; diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx index e093d15d2cb9..62f1b5bb8278 100644 --- a/vcl/source/control/field2.cxx +++ b/vcl/source/control/field2.cxx @@ -679,7 +679,7 @@ static bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt, { // possibly extend string until cursor position if ( aStr.getLength() < nNewPos ) - aStr.append( rLiteralMask.copy( aStr.getLength(), nNewPos-aStr.getLength() )); + aStr.appendCopy( rLiteralMask, aStr.getLength(), nNewPos-aStr.getLength() ); if ( nNewPos < aStr.getLength() ) aStr.insert( cChar, nNewPos ); else if ( nNewPos < rEditMask.getLength() ) diff --git a/vcl/source/control/longcurr.cxx b/vcl/source/control/longcurr.cxx index f2a741abb6d6..3d46cf92d27c 100644 --- a/vcl/source/control/longcurr.cxx +++ b/vcl/source/control/longcurr.cxx @@ -117,7 +117,7 @@ bool ImplCurrencyGetValue( const OUString& rStr, BigInt& rValue, if ( nDecPos != -1 ) { aStr1 = aStr.copy( 0, nDecPos ); - aStr2.append(aStr.copy(nDecPos+1)); + aStr2.appendCopy(aStr, nDecPos+1); } else aStr1 = aStr; diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx index 1f78eaea55cd..d3ebd1ae618c 100644 --- a/vcl/source/edit/texteng.cxx +++ b/vcl/source/edit/texteng.cxx @@ -274,7 +274,7 @@ OUString TextEngine::GetTextLines( LineEnd aSeparator ) const for ( size_t nL = 0; nL < nLines; ++nL ) { TextLine& rLine = pTEParaPortion->GetLines()[nL]; - aText.append( pTEParaPortion->GetNode()->GetText().copy( rLine.GetStart(), rLine.GetEnd() - rLine.GetStart() ) ); + aText.appendCopy( pTEParaPortion->GetNode()->GetText(), rLine.GetStart(), rLine.GetEnd() - rLine.GetStart() ); if ( pSep && ( ( (nP+1) < nParas ) || ( (nL+1) < nLines ) ) ) aText.append(pSep); } @@ -415,7 +415,7 @@ OUString TextEngine::GetText( const TextSelection& rSel, LineEnd aSeparator ) co if ( nNode == nEndPara ) // may also be == nStart! nEndPos = aSel.GetEnd().GetIndex(); - aText.append(pNode->GetText().copy( nStartPos, nEndPos-nStartPos )); + aText.appendCopy(pNode->GetText(), nStartPos, nEndPos-nStartPos); if ( nNode < nEndPara ) aText.append(pSep); } diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 5f3bb6e02e0e..8cfeba05f33b 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -1683,9 +1683,9 @@ static OUString getShortenedString( const OUString& i_rLong, vcl::RenderContext if (nPos < aNonMnem.getLength() && i_rLong[nPos+1] == aNonMnem[nPos]) { OUStringBuffer aBuf( i_rLong.getLength() ); - aBuf.append( aNonMnem.copy( 0, nPos) ); + aBuf.appendCopy( aNonMnem, 0, nPos ); aBuf.append( '~' ); - aBuf.append( aNonMnem.copy(nPos) ); + aBuf.appendCopy( aNonMnem, nPos ); aNonMnem = aBuf.makeStringAndClear(); } } diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx index 35be2e7ae4ad..d8019f7ca7fc 100644 --- a/vcl/source/window/printdlg.cxx +++ b/vcl/source/window/printdlg.cxx @@ -1343,10 +1343,10 @@ static OUString searchAndReplace( const OUString& i_rOrig, const char* i_pRepl, if( nPos != -1 ) { OUStringBuffer aBuf( i_rOrig.getLength() ); - aBuf.append( i_rOrig.getStr(), nPos ); + aBuf.appendCopy( i_rOrig, nPos ); aBuf.append( i_rRepl ); if( nPos + i_nReplLen < i_rOrig.getLength() ) - aBuf.append( i_rOrig.getStr() + nPos + i_nReplLen ); + aBuf.appendCopy( i_rOrig, nPos + i_nReplLen ); return aBuf.makeStringAndClear(); } return i_rOrig; |