summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-08-07 10:34:54 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-08-14 08:35:00 +0200
commitcd66852f6dd08631a25d15a1527a647e69ab8ce3 (patch)
tree0ac1fab1d063046376e31e21d6656ee05eebb627 /vcl
parent095e1ca4372d90da7fc56051f1271ddd975a9e3a (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.cxx14
-rw-r--r--vcl/source/control/field2.cxx2
-rw-r--r--vcl/source/control/longcurr.cxx2
-rw-r--r--vcl/source/edit/texteng.cxx4
-rw-r--r--vcl/source/window/menu.cxx4
-rw-r--r--vcl/source/window/printdlg.cxx4
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;