tdf#131951 related, improve perf
similar to
commit 9429dacc7ff93f99dd84532357020669df33a0c5
tdf#131951: automatically increase buffer size
in a few places, let the OUStringBuffer handle large tokens,
it has faster handling than repeatedly appending to an OUString
Change-Id: I609b84b36e817fbcd6d366c53cd2e8b865216712
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92503
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/svtools/source/svhtml/parhtml.cxx b/svtools/source/svhtml/parhtml.cxx
index be0b8fe..b366471 100644
--- a/svtools/source/svhtml/parhtml.cxx
+++ b/svtools/source/svhtml/parhtml.cxx
@@ -925,12 +925,6 @@
while( '-' == nNextCh && IsParserWorking() )
{
bTwoMinus = true;
if( MAX_LEN == sTmpBuffer.getLength() )
{
aToken += sTmpBuffer;
sTmpBuffer.setLength(0);
}
sTmpBuffer.appendUtf32( nNextCh );
nNextCh = GetNextChar();
}
@@ -983,8 +977,7 @@
break;
}
if( (!bContinue && !sTmpBuffer.isEmpty()) ||
MAX_LEN == sTmpBuffer.getLength() )
if( !bContinue && !sTmpBuffer.isEmpty() )
{
aToken += sTmpBuffer;
sTmpBuffer.setLength(0);
@@ -1063,11 +1056,6 @@
OUStringBuffer sTmpBuffer;
do {
sTmpBuffer.appendUtf32( nNextCh );
if( MAX_LEN == sTmpBuffer.getLength() )
{
aToken += sTmpBuffer;
sTmpBuffer.setLength(0);
}
nNextCh = GetNextChar();
} while( '>' != nNextCh && '/' != nNextCh && !rtl::isAsciiWhiteSpace( nNextCh ) &&
IsParserWorking() && !rInput.eof() );
diff --git a/svtools/source/svrtf/parrtf.cxx b/svtools/source/svrtf/parrtf.cxx
index a52b8ee..8b5ad0a 100644
--- a/svtools/source/svrtf/parrtf.cxx
+++ b/svtools/source/svrtf/parrtf.cxx
@@ -99,22 +99,12 @@
{
aToken = "\\";
{
OUStringBuffer aStrBuffer;
aStrBuffer.setLength( MAX_TOKEN_LEN );
sal_Int32 nStrLen = 0;
OUStringBuffer aStrBuffer( MAX_TOKEN_LEN );
do {
aStrBuffer[nStrLen++] = nNextCh;
if( MAX_TOKEN_LEN == nStrLen )
{
aToken += aStrBuffer;
nStrLen = 0;
}
aStrBuffer.appendUtf32(nNextCh);
nNextCh = GetNextChar();
} while( RTF_ISALPHA( nNextCh ) );
if( nStrLen )
{
aToken += aStrBuffer;
}
aToken += aStrBuffer;
}
// minus before numeric parameters