diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2019-10-17 20:33:50 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-11-03 17:11:32 +0100 |
commit | 48101a1a0d574db3db1f99c782bd67e885b232bb (patch) | |
tree | afd2f88944d73f43762b3a31df2ff81c8115ba9e /oox | |
parent | ab285c743afa1c8769581871d7b56374fd8c49f1 (diff) |
size some stringbuffer to prevent re-alloc
I started with 32 and kept doubling the size until the site
did not need re-alloc, but clamped it at 512.
Change-Id: I55fe36b31cd3d40f86e5729337a927cf920f2af6
Reviewed-on: https://gerrit.libreoffice.org/81960
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/core/relationshandler.cxx | 10 | ||||
-rw-r--r-- | oox/source/ole/olehelper.cxx | 2 | ||||
-rw-r--r-- | oox/source/ole/vbamodule.cxx | 4 |
3 files changed, 7 insertions, 9 deletions
diff --git a/oox/source/core/relationshandler.cxx b/oox/source/core/relationshandler.cxx index 9b7675ff2cb1..fe448bc43a7b 100644 --- a/oox/source/core/relationshandler.cxx +++ b/oox/source/core/relationshandler.cxx @@ -45,12 +45,10 @@ namespace { OUString lclGetRelationsPath( const OUString& rFragmentPath ) { sal_Int32 nPathLen = ::std::max< sal_Int32 >( rFragmentPath.lastIndexOf( '/' ) + 1, 0 ); - return - OUStringBuffer( rFragmentPath.copy( 0, nPathLen ) ). // file path including slash - append( "_rels/" ). // additional '_rels/' path - append( std::u16string_view(rFragmentPath).substr(nPathLen) ). // file name after path - append( ".rels" ). // '.rels' suffix - makeStringAndClear(); + return rtl::OUStringView(rFragmentPath.getStr(), nPathLen ) + // file path including slash + "_rels/" + // additional '_rels/' path + rtl::OUStringView(rFragmentPath.getStr() + nPathLen) + // file name after path + ".rels"; // '.rels' suffix } } // namespace diff --git a/oox/source/ole/olehelper.cxx b/oox/source/ole/olehelper.cxx index d2dd4899d2e6..05b787d9f85a 100644 --- a/oox/source/ole/olehelper.cxx +++ b/oox/source/ole/olehelper.cxx @@ -261,7 +261,7 @@ void OleHelper::exportGuid( BinaryOutputStream& rOStr, const SvGlobalName& rId ) OUString OleHelper::importGuid( BinaryInputStream& rInStrm ) { - OUStringBuffer aBuffer; + OUStringBuffer aBuffer(40); aBuffer.append( '{' ); lclAppendHex( aBuffer, rInStrm.readuInt32() ); aBuffer.append( '-' ); diff --git a/oox/source/ole/vbamodule.cxx b/oox/source/ole/vbamodule.cxx index b7ff5edb7aec..82a368934794 100644 --- a/oox/source/ole/vbamodule.cxx +++ b/oox/source/ole/vbamodule.cxx @@ -143,7 +143,7 @@ void VbaModule::createEmptyModule( const Reference< container::XNameContainer >& OUString VbaModule::readSourceCode( StorageBase& rVbaStrg ) const { - OUStringBuffer aSourceCode; + OUStringBuffer aSourceCode(512); static const char sUnmatchedRemovedTag[] = "Rem removed unmatched Sub/End: "; if( !maStreamName.isEmpty() && (mnOffset != SAL_MAX_UINT32) ) { @@ -264,7 +264,7 @@ void VbaModule::createModule( const OUString& rVBASourceCode, // prepare the Basic module script::ModuleInfo aModuleInfo; aModuleInfo.ModuleType = mnType; - OUStringBuffer aSourceCode; + OUStringBuffer aSourceCode(512); aSourceCode.append( "Rem Attribute VBA_ModuleType=" ); switch( mnType ) { |