summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2022-03-01 12:07:47 +0100
committerLuboš Luňák <l.lunak@collabora.com>2022-03-01 21:32:11 +0100
commitb871d057c45fdd231aa5e1d2b94e7d0a039f4292 (patch)
tree31ed7faa9558a171c6bcf0c2ed5a60a6fd5240ca /editeng
parent2960d4128710afd3e0c090960d281e69b44e69eb (diff)
use OUStringBuffer for a string that's modified often (tdf#145862)
SvParser::aToken was OUString despite being a buffer where the parsed result is collected. Change-Id: Id24c842738ea0f6f1836f77d855069963ac5ae55 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130763 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/eehtml.cxx2
-rw-r--r--editeng/source/rtf/svxrtf.cxx15
2 files changed, 7 insertions, 10 deletions
diff --git a/editeng/source/editeng/eehtml.cxx b/editeng/source/editeng/eehtml.cxx
index a3de37005ffc..93740129e9df 100644
--- a/editeng/source/editeng/eehtml.cxx
+++ b/editeng/source/editeng/eehtml.cxx
@@ -179,7 +179,7 @@ void EditHTMLParser::NextToken( HtmlTokenId nToken )
if ( !bInPara )
StartPara( false );
- OUString aText = aToken;
+ OUString aText = aToken.toString();
if ( aText.startsWith(" ") && ThrowAwayBlank() && !IsReadPRE() )
aText = aText.copy( 1 );
diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx
index f60c14cdbafa..cae8e4361ad0 100644
--- a/editeng/source/rtf/svxrtf.cxx
+++ b/editeng/source/rtf/svxrtf.cxx
@@ -166,7 +166,7 @@ void SvxRTFParser::NextToken( int nToken )
case RTF_LDBLQUOTE: cCh = 0x201C; goto INSINGLECHAR;
case RTF_RDBLQUOTE: cCh = 0x201D; goto INSINGLECHAR;
INSINGLECHAR:
- aToken = OUString(cCh);
+ aToken = OUStringChar(cCh);
[[fallthrough]]; // aToken is set as Text
case RTF_TEXTTOKEN:
{
@@ -324,7 +324,8 @@ void SvxRTFParser::ReadStyleTable()
case RTF_TEXTTOKEN:
if (bHasStyleNo)
{
- xStyle->sName = DelCharAtEnd( aToken, ';' );
+ DelCharAtEnd( aToken, ';' );
+ xStyle->sName = aToken.toString();
if (!m_StyleTable.empty())
{
@@ -581,15 +582,11 @@ void SvxRTFParser::ClearAttrStack()
aAttrStack.clear();
}
-OUString& SvxRTFParser::DelCharAtEnd( OUString& rStr, const sal_Unicode cDel )
+void SvxRTFParser::DelCharAtEnd( OUStringBuffer& rStr, const sal_Unicode cDel )
{
- if( !rStr.isEmpty() && ' ' == rStr[ 0 ])
- rStr = comphelper::string::stripStart(rStr, ' ');
- if( !rStr.isEmpty() && ' ' == rStr[ rStr.getLength()-1 ])
- rStr = comphelper::string::stripEnd(rStr, ' ');
+ rStr.strip(' ');
if( !rStr.isEmpty() && cDel == rStr[ rStr.getLength()-1 ])
- rStr = rStr.copy( 0, rStr.getLength()-1 );
- return rStr;
+ rStr.setLength( rStr.getLength()-1 );
}