summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-12-21 14:07:19 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-12-21 14:32:32 +0100
commit90368a2e513b92cf5f7916870c7e001b1fb42c7c (patch)
tree29092cf967cba99606b1b3e5bd54e92c403dcf3d
parentWaE: Wmaybe-uninitialized (diff)
downloadcore-90368a2e513b92cf5f7916870c7e001b1fb42c7c.tar.gz
core-90368a2e513b92cf5f7916870c7e001b1fb42c7c.zip
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.grandin@collabora.co.uk>
-rw-r--r--sd/source/ui/func/fumorph.cxx22
-rw-r--r--sd/source/ui/inc/fumorph.hxx4
2 files changed, 11 insertions, 15 deletions
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