sd/source/ui/func/fumorph.cxx | 22 +++++++++------------- sd/source/ui/inc/fumorph.hxx | 4 ++-- 2 files changed, 11 insertions(+), 15 deletions(-)
New commits: commit 90368a2e513b92cf5f7916870c7e001b1fb42c7c Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Fri Dec 21 14:07:19 2018 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Dec 21 14:32:32 2018 +0100 no need to store B2DPolyPolygon on the heap here it's a COW type internally, so only one pointer big Change-Id: I478f5aa6f84c87bedf6f450526e7f8f7c297e7c4 Reviewed-on: https://gerrit.libreoffice.org/65529 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sd/source/ui/func/fumorph.cxx b/sd/source/ui/func/fumorph.cxx index 7604ab825a6e..e4a153d08160 100644 --- a/sd/source/ui/func/fumorph.cxx +++ b/sd/source/ui/func/fumorph.cxx @@ -169,10 +169,6 @@ void FuMorph::DoExecute( SfxRequest& ) mpView->BegUndo(aString); ImpInsertPolygons(aPolyPolyList, pDlg->IsAttributeFade(), pObj1, pObj2); mpView->EndUndo(); - - for(basegfx::B2DPolyPolygon * p : aPolyPolyList) { - delete p; - } } } SdrObject::Free( pCloneObj1 ); @@ -396,7 +392,7 @@ void FuMorph::ImpInsertPolygons( for ( size_t i = 0; i < nCount; i++, fFactor += fStep ) { - const ::basegfx::B2DPolyPolygon& rPolyPoly3D = *rPolyPolyList3D[ i ]; + const ::basegfx::B2DPolyPolygon& rPolyPoly3D = rPolyPolyList3D[ i ]; SdrPathObj* pNewObj = new SdrPathObj( mpView->getSdrModelFromSdrView(), OBJ_POLY, @@ -446,13 +442,13 @@ void FuMorph::ImpInsertPolygons( /** * create single morphed PolyPolygon */ -::basegfx::B2DPolyPolygon* FuMorph::ImpCreateMorphedPolygon( +::basegfx::B2DPolyPolygon FuMorph::ImpCreateMorphedPolygon( const ::basegfx::B2DPolyPolygon& rPolyPolyStart, const ::basegfx::B2DPolyPolygon& rPolyPolyEnd, double fMorphingFactor ) { - ::basegfx::B2DPolyPolygon* pNewPolyPolygon = new ::basegfx::B2DPolyPolygon(); + ::basegfx::B2DPolyPolygon aNewPolyPolygon; const double fFactor = 1.0 - fMorphingFactor; for(sal_uInt32 a(0); a < rPolyPolyStart.count(); a++) @@ -470,10 +466,10 @@ void FuMorph::ImpInsertPolygons( } aNewPolygon.setClosed(aPolyStart.isClosed() && aPolyEnd.isClosed()); - pNewPolyPolygon->append(aNewPolygon); + aNewPolyPolygon.append(aNewPolygon); } - return pNewPolyPolygon; + return aNewPolyPolygon; } /** @@ -499,15 +495,15 @@ void FuMorph::ImpMorphPolygons( for(sal_uInt16 i(0); i < nSteps; i++) { fValue += fFactor; - ::basegfx::B2DPolyPolygon* pNewPolyPoly2D = ImpCreateMorphedPolygon(rPolyPoly1, rPolyPoly2, fValue); + ::basegfx::B2DPolyPolygon aNewPolyPoly2D = ImpCreateMorphedPolygon(rPolyPoly1, rPolyPoly2, fValue); - const ::basegfx::B2DRange aNewPolySize(::basegfx::utils::getRange(*pNewPolyPoly2D)); + const ::basegfx::B2DRange aNewPolySize(::basegfx::utils::getRange(aNewPolyPoly2D)); const ::basegfx::B2DPoint aNewS(aNewPolySize.getCenter()); const ::basegfx::B2DPoint aRealS(aStartCenter + (aDelta * fValue)); const ::basegfx::B2DPoint aDiff(aRealS - aNewS); - pNewPolyPoly2D->transform(basegfx::utils::createTranslateB2DHomMatrix(aDiff)); - rPolyPolyList3D.push_back( pNewPolyPoly2D ); + aNewPolyPoly2D.transform(basegfx::utils::createTranslateB2DHomMatrix(aDiff)); + rPolyPolyList3D.push_back( std::move(aNewPolyPoly2D) ); } } } diff --git a/sd/source/ui/inc/fumorph.hxx b/sd/source/ui/inc/fumorph.hxx index ba3a39320f18..434beaae4755 100644 --- a/sd/source/ui/inc/fumorph.hxx +++ b/sd/source/ui/inc/fumorph.hxx @@ -41,7 +41,7 @@ public: virtual void DoExecute( SfxRequest& rReq ) override; private: - typedef ::std::vector< ::basegfx::B2DPolyPolygon* > B2DPolyPolygonList_impl; + typedef ::std::vector< ::basegfx::B2DPolyPolygon > B2DPolyPolygonList_impl; FuMorph ( ViewShell* pViewSh, @@ -57,7 +57,7 @@ private: const SdrObject* pObj2 ); - static ::basegfx::B2DPolyPolygon* ImpCreateMorphedPolygon( + static ::basegfx::B2DPolyPolygon ImpCreateMorphedPolygon( const ::basegfx::B2DPolyPolygon& rPolyPolyStart, const ::basegfx::B2DPolyPolygon& rPolyPolyEnd, double fMorphingFactor _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits