tdf#163691 Use std::copy_n() instead of memcpy() in svx

Replace memcpy() with std::copy_n() in _xpoly.cxx to improve
type safety by eliminating manual sizeof() calculations.

Change-Id: I04418ff298dd88f2ad9b5d8555d9a62dede5079a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204360
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
This commit is contained in:
Asim Raza
2026-04-27 09:24:32 +02:00
committed by Julien Nabet
parent 9a8597c98e
commit f229c646e9
+12 -12
View File
@@ -56,8 +56,8 @@ ImpXPolygon::ImpXPolygon( const ImpXPolygon& rImpXPoly )
// copy
nPoints = rImpXPoly.nPoints;
memcpy( pPointAry.get(), rImpXPoly.pPointAry.get(), nSize*sizeof( Point ) );
memcpy( pFlagAry.get(), rImpXPoly.pFlagAry.get(), nSize );
std::copy_n( rImpXPoly.pPointAry.get(), nSize, pPointAry.get() );
std::copy_n( rImpXPoly.pFlagAry.get(), nSize, pFlagAry.get() );
}
ImpXPolygon::~ImpXPolygon()
@@ -117,13 +117,13 @@ void ImpXPolygon::Resize( sal_uInt16 nNewSize, bool bDeletePoints )
{
if( nOldSize < nSize )
{
memcpy( pPointAry.get(), pOldPointAry, nOldSize*sizeof( Point ) );
memcpy( pFlagAry.get(), pOldFlagAry, nOldSize );
std::copy_n( pOldPointAry, nOldSize, pPointAry.get() );
std::copy_n( pOldFlagAry, nOldSize, pFlagAry.get() );
}
else
{
memcpy( pPointAry.get(), pOldPointAry, nSize*sizeof( Point ) );
memcpy( pFlagAry.get(), pOldFlagAry, nSize );
std::copy_n( pOldPointAry, nSize, pPointAry.get() );
std::copy_n( pOldFlagAry, nSize, pFlagAry.get() );
// adjust number of valid points
if( nPoints > nSize )
@@ -365,12 +365,12 @@ void XPolygon::Insert( sal_uInt16 nPos, const XPolygon& rXPoly )
m_pImpXPolygon->InsertSpace( nPos, nPoints );
memcpy( &(m_pImpXPolygon->pPointAry[nPos]),
rXPoly.m_pImpXPolygon->pPointAry.get(),
nPoints*sizeof( Point ) );
memcpy( &(m_pImpXPolygon->pFlagAry[nPos]),
rXPoly.m_pImpXPolygon->pFlagAry.get(),
nPoints );
std::copy_n( rXPoly.m_pImpXPolygon->pPointAry.get(),
nPoints,
&(m_pImpXPolygon->pPointAry[nPos]) );
std::copy_n( rXPoly.m_pImpXPolygon->pFlagAry.get(),
nPoints,
&(m_pImpXPolygon->pFlagAry[nPos]) );
}
void XPolygon::Remove( sal_uInt16 nPos, sal_uInt16 nCount )