diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2022-03-01 12:07:47 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2022-03-01 21:32:11 +0100 |
commit | b871d057c45fdd231aa5e1d2b94e7d0a039f4292 (patch) | |
tree | 31ed7faa9558a171c6bcf0c2ed5a60a6fd5240ca /editeng | |
parent | 2960d4128710afd3e0c090960d281e69b44e69eb (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.cxx | 2 | ||||
-rw-r--r-- | editeng/source/rtf/svxrtf.cxx | 15 |
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 ); } |