From fc161dc07cafda54ebdabd4c66dfd6528cc11813 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 6 Sep 2019 09:14:06 +0200 Subject: use unique_ptr in DoConvertToPolyObj Change-Id: Ia7f9ff4d8f7b9834b6634e5c126bd65014dacf19 Reviewed-on: https://gerrit.libreoffice.org/78684 Tested-by: Jenkins Reviewed-by: Noel Grandin --- sd/source/ui/func/fulinend.cxx | 7 ++++--- sd/source/ui/func/fumorph.cxx | 7 ++----- 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'sd/source/ui') diff --git a/sd/source/ui/func/fulinend.cxx b/sd/source/ui/func/fulinend.cxx index 6f9df0b16028..8d3886a6be4d 100644 --- a/sd/source/ui/func/fulinend.cxx +++ b/sd/source/ui/func/fulinend.cxx @@ -58,7 +58,7 @@ void FuLineEnd::DoExecute( SfxRequest& ) const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); const SdrObject* pNewObj; - SdrObject* pConvPolyObj = nullptr; + SdrObjectUniquePtr pConvPolyObj; if( dynamic_cast< const SdrPathObj *>( pObj ) != nullptr ) { @@ -75,7 +75,8 @@ void FuLineEnd::DoExecute( SfxRequest& ) // bCanConvToPath is sal_True for group objects, // but it crashes on ConvertToPathObj()! { - pNewObj = pConvPolyObj = pObj->ConvertToPolyObj( true, false ); + pConvPolyObj = pObj->ConvertToPolyObj( true, false ); + pNewObj = pConvPolyObj.get(); if( !pNewObj || dynamic_cast< const SdrPathObj *>( pNewObj ) == nullptr ) return; // Cancel, additional security, but it does not help @@ -87,7 +88,7 @@ void FuLineEnd::DoExecute( SfxRequest& ) const ::basegfx::B2DPolyPolygon aPolyPolygon = static_cast(pNewObj)->GetPathPoly(); // Delete the created poly-object - SdrObject::Free( pConvPolyObj ); + pConvPolyObj.reset(); XLineEndListRef pLineEndList = mpDoc->GetLineEndList(); diff --git a/sd/source/ui/func/fumorph.cxx b/sd/source/ui/func/fumorph.cxx index f9827986f9da..72223999498a 100644 --- a/sd/source/ui/func/fumorph.cxx +++ b/sd/source/ui/func/fumorph.cxx @@ -90,8 +90,8 @@ void FuMorph::DoExecute( SfxRequest& ) pCloneObj2->SetOutlinerParaObject(nullptr); // create path objects - SdrObject* pPolyObj1 = pCloneObj1->ConvertToPolyObj(false, false); - SdrObject* pPolyObj2 = pCloneObj2->ConvertToPolyObj(false, false); + SdrObjectUniquePtr pPolyObj1 = pCloneObj1->ConvertToPolyObj(false, false); + SdrObjectUniquePtr pPolyObj2 = pCloneObj2->ConvertToPolyObj(false, false); SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create(); ScopedVclPtr pDlg( pFact->CreateMorphDlg(mpWindow ? mpWindow->GetFrameWeld() : nullptr, pObj1, pObj2) ); if(pPolyObj1 && pPolyObj2 && (pDlg->Execute() == RET_OK)) @@ -173,9 +173,6 @@ void FuMorph::DoExecute( SfxRequest& ) } SdrObject::Free( pCloneObj1 ); SdrObject::Free( pCloneObj2 ); - - SdrObject::Free( pPolyObj1 ); - SdrObject::Free( pPolyObj2 ); } static ::basegfx::B2DPolygon ImpGetExpandedPolygon( -- cgit