sw/source/core/edit/edglss.cxx | 18 +++--------------- sw/source/core/unocore/unoobj.cxx | 16 ++++------------ 2 files changed, 7 insertions(+), 27 deletions(-)
New commits: commit 3b4433883f959aa78fa91163493e0950ea85d08d Author: Mike Kaganski <[email protected]> AuthorDate: Fri Jun 27 22:29:10 2025 +0200 Commit: Mike Kaganski <[email protected]> CommitDate: Sat Jun 28 06:50:14 2025 +0200 Simplify OUString creation from SvMemoryStream No need for a fallback to Seek / ReadBytes if !p. No need to write null character, nor to count to it: we know the size. Change-Id: If85dd953862ae60e32f33af1ddd4d9099f6885f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187124 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> diff --git a/sw/source/core/edit/edglss.cxx b/sw/source/core/edit/edglss.cxx index 7e5a41a73a0d..4576cbec48d5 100644 --- a/sw/source/core/edit/edglss.cxx +++ b/sw/source/core/edit/edglss.cxx @@ -303,22 +303,10 @@ void SwEditShell::GetSelectedText( OUString &rBuf, ParaBreakType nHndlParaBrk ) if ( ! aWriter.Write(xWrt).IsError() ) { - aStream.WriteUInt16( ' - const sal_Unicode *p = static_cast<sal_Unicode const *>(aStream.GetData()); - if (p) - rBuf = OUString(p); - else - { - const sal_uInt64 nLen = aStream.GetSize(); - OSL_ENSURE( nLen/sizeof( sal_Unicode )<o3tl::make_unsigned(SAL_MAX_INT32), "Stream can't fit in OUString" ); - rtl_uString *pStr = rtl_uString_alloc(static_cast<sal_Int32>(nLen / sizeof( sal_Unicode ))); - aStream.Seek( 0 ); - aStream.ResetError(); - //endian specific?, yipes! - aStream.ReadBytes(pStr->buffer, nLen); - rBuf = OUString(pStr, SAL_NO_ACQUIRE); - } + const size_t nUniLen = aStream.GetEndOfData() / sizeof(sal_Unicode); + if (p && nUniLen < o3tl::make_unsigned(SAL_MAX_INT32 - 1)) + rBuf = OUString(p, nUniLen); } } } diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx index 57aac3b5e258..3ed86a98a45b 100644 --- a/sw/source/core/unocore/unoobj.cxx +++ b/sw/source/core/unocore/unoobj.cxx @@ -168,18 +168,10 @@ void SwUnoCursorHelper::GetTextFromPam(SwPaM & rPam, OUString & rBuffer, if( ! aWriter.Write( xWrt ).IsError() ) { - const sal_uInt64 lUniLen = aStream.GetSize()/sizeof( sal_Unicode ); - if (lUniLen < o3tl::make_unsigned(SAL_MAX_INT32-1)) - { - aStream.WriteUInt16( ' - - aStream.Seek( 0 ); - aStream.ResetError(); - - rtl_uString *pStr = rtl_uString_alloc(lUniLen); - aStream.ReadBytes(pStr->buffer, lUniLen * sizeof(sal_Unicode)); - rBuffer = OUString(pStr, SAL_NO_ACQUIRE); - } + const sal_Unicode* p = static_cast<sal_Unicode const*>(aStream.GetData()); + const size_t lUniLen = aStream.GetEndOfData()/sizeof( sal_Unicode ); + if (p && lUniLen < o3tl::make_unsigned(SAL_MAX_INT32-1)) + rBuffer = OUString(p, lUniLen); } xWrt->m_bShowProgress = bOldShowProgress;
