basic/source/classes/image.cxx |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

New commits:
commit 1f597d3d377d97fb333d98a6fefd82ffbdf87853
Author:     Alin Andrei Abahnencei <[email protected]>
AuthorDate: Sun Jun 22 17:19:46 2025 +0300
Commit:     Mike Kaganski <[email protected]>
CommitDate: Mon Jun 23 17:54:13 2025 +0200

    tdf#163691 Use std::copy() instead of memcpy()
    
    Signed-off-by: Alin Andrei Abahnencei <[email protected]>
    Change-Id: I8cc409020dfd059b4f954172ba23c7f6e4e254a2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186792
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/basic/source/classes/image.cxx b/basic/source/classes/image.cxx
index 95e9a26ae6b2..1e12cf725a79 100644
--- a/basic/source/classes/image.cxx
+++ b/basic/source/classes/image.cxx
@@ -229,7 +229,7 @@ bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion )
                     if (GetToUnicodePoolData(r, nLen, nNext))
                     {
                         OUString s = read_uInt16s_ToOUString(r, nLen);
-                        memcpy(pStrings.get(), s.getStr(), s.getLength() * 
sizeof(sal_Unicode));
+                        std::copy_n(s.getStr(), s.getLength(), pStrings.get());
                     }
                     else
                     {
@@ -239,7 +239,8 @@ bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion )
                         {
                             sal_uInt16 nOff2 = 
static_cast<sal_uInt16>(mvStringOffsets[j]);
                             OUString aStr(pByteStrings.get() + nOff2, 
strlen(pByteStrings.get() + nOff2), eCharSet);
-                            memcpy(pStrings.get() + nOff2, aStr.getStr(), 
(aStr.getLength() + 1) * sizeof(sal_Unicode));
+                            std::copy_n(aStr.getStr(), aStr.getLength() + 1,
+                                        pStrings.get() + nOff2);
                         }
                     }
                 }
@@ -431,7 +432,7 @@ bool SbiImage::Save( SvStream& r, sal_uInt32 nVer )
         {
             sal_uInt16 nOff = static_cast<sal_uInt16>(mvStringOffsets[ i ]);
             OString aStr(OUStringToOString(std::u16string_view(pStrings.get() 
+ nOff), eCharSet));
-            memcpy( pByteStrings.get() + nOff, aStr.getStr(), 
(aStr.getLength() + 1) * sizeof( char ) );
+            std::copy_n(aStr.getStr(), aStr.getLength() + 1, 
pByteStrings.get() + nOff);
         }
         r.WriteUInt32( nStringSize );
         r.WriteBytes(pByteStrings.get(), nStringSize);
@@ -570,14 +571,14 @@ void SbiImage::AddString( const OUString& r )
         sal_uInt32 nNewLen = needed + 1024;
         nNewLen &= 0xFFFFFC00;  // trim to 1K border
         std::unique_ptr<sal_Unicode[]> p(new sal_Unicode[nNewLen]);
-        memcpy( p.get(), pStrings.get(), nStringSize * sizeof( sal_Unicode ) );
+        std::copy_n(pStrings.get(), nStringSize, p.get());
         pStrings = std::move(p);
         nStringSize = sal::static_int_cast< sal_uInt16 >(nNewLen);
     }
     if( !bError )
     {
         mvStringOffsets[ nStringIdx++ ] = nStringOff;
-        std::copy(r.getStr(), r.getStr() + len, pStrings.get() + nStringOff);
+        std::copy_n(r.getStr(), len, pStrings.get() + nStringOff);
         nStringOff = nStringOff + len;
         // Last String? The update the size of the buffer
         if( nStringIdx >= mvStringOffsets.size() )

Reply via email to