diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-11 10:36:07 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-15 15:51:37 +0200 |
commit | 9d31badc81c5044269a50ee2bc16f757f258d617 (patch) | |
tree | 983e7a6b0264b44b12d47d86b5724cb3a7b3cc0b /svx | |
parent | e4989ae8ca0d8b37e98caa5b68c164c79d27d574 (diff) |
loplugin:useuniqueptr in disposeOutliner
Change-Id: I038d98a4d4b3dd2a73afd8ddb4c4a7396e52267f
Reviewed-on: https://gerrit.libreoffice.org/59012
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/inc/svdoutlinercache.hxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdmodel.cxx | 10 | ||||
-rw-r--r-- | svx/source/svdraw/svdoutlinercache.cxx | 9 | ||||
-rw-r--r-- | svx/source/unodraw/unoshtxt.cxx | 9 |
4 files changed, 11 insertions, 19 deletions
diff --git a/svx/source/inc/svdoutlinercache.hxx b/svx/source/inc/svdoutlinercache.hxx index 9eba3da602c9..a919da2ab89d 100644 --- a/svx/source/inc/svdoutlinercache.hxx +++ b/svx/source/inc/svdoutlinercache.hxx @@ -42,7 +42,7 @@ public: ~SdrOutlinerCache(); std::unique_ptr<SdrOutliner> createOutliner( OutlinerMode nOutlinerMode ); - void disposeOutliner( SdrOutliner* pOutliner ); + void disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner ); std::vector< SdrOutliner* > GetActiveOutliners() const; }; diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 4889328cbf57..0677d4424593 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -1885,16 +1885,10 @@ std::vector<SdrOutliner*> SdrModel::GetActiveOutliners() const return aRet; } -void SdrModel::disposeOutliner( SdrOutliner* pOutliner ) +void SdrModel::disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner ) { if( mpOutlinerCache ) - { - mpOutlinerCache->disposeOutliner( pOutliner ); - } - else - { - delete pOutliner; - } + mpOutlinerCache->disposeOutliner( std::move(pOutliner) ); } SvxNumType SdrModel::GetPageNumType() const diff --git a/svx/source/svdraw/svdoutlinercache.cxx b/svx/source/svdraw/svdoutlinercache.cxx index fe66e5f0a42f..1d9d75d81f08 100644 --- a/svx/source/svdraw/svdoutlinercache.cxx +++ b/svx/source/svdraw/svdoutlinercache.cxx @@ -59,7 +59,7 @@ SdrOutlinerCache::~SdrOutlinerCache() { } -void SdrOutlinerCache::disposeOutliner( SdrOutliner* pOutliner ) +void SdrOutlinerCache::disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner ) { if( pOutliner ) { @@ -67,26 +67,25 @@ void SdrOutlinerCache::disposeOutliner( SdrOutliner* pOutliner ) if( OutlinerMode::OutlineObject == nOutlMode ) { - maModeOutline.emplace_back(pOutliner); pOutliner->Clear(); pOutliner->SetVertical( false ); // Deregister on outliner, might be reused from outliner cache pOutliner->SetNotifyHdl( Link<EENotify&,void>() ); + maModeOutline.emplace_back(std::move(pOutliner)); } else if( OutlinerMode::TextObject == nOutlMode ) { - maModeText.emplace_back(pOutliner); pOutliner->Clear(); pOutliner->SetVertical( false ); // Deregister on outliner, might be reused from outliner cache pOutliner->SetNotifyHdl( Link<EENotify&,void>() ); + maModeText.emplace_back(std::move(pOutliner)); } else { - maActiveOutliners.erase(pOutliner); - delete pOutliner; + maActiveOutliners.erase(pOutliner.get()); } } } diff --git a/svx/source/unodraw/unoshtxt.cxx b/svx/source/unodraw/unoshtxt.cxx index 466f564602e1..52414fb67957 100644 --- a/svx/source/unodraw/unoshtxt.cxx +++ b/svx/source/unodraw/unoshtxt.cxx @@ -85,7 +85,7 @@ private: SdrView* mpView; VclPtr<const vcl::Window> mpWindow; SdrModel* mpModel; // TTTT probably not needed -> use SdrModel from SdrObject (?) - SdrOutliner* mpOutliner; + std::unique_ptr<SdrOutliner> mpOutliner; std::unique_ptr<SvxOutlinerForwarder> mpTextForwarder; std::unique_ptr<SvxDrawOutlinerViewForwarder> mpViewForwarder; // if non-NULL, use GetViewModeTextForwarder text forwarder css::uno::Reference< css::linguistic2::XLinguServiceManager2 > m_xLinguServiceManager; @@ -406,13 +406,12 @@ void SvxTextEditSourceImpl::dispose() { if( mpModel ) { - mpModel->disposeOutliner( mpOutliner ); + mpModel->disposeOutliner( std::move(mpOutliner) ); } else { - delete mpOutliner; + mpOutliner.reset(); } - mpOutliner = nullptr; } if( mpModel ) @@ -500,7 +499,7 @@ SvxTextForwarder* SvxTextEditSourceImpl::GetBackgroundTextForwarder() if( pTextObj && pTextObj->IsTextFrame() && pTextObj->GetTextKind() == OBJ_OUTLINETEXT ) nOutlMode = OutlinerMode::OutlineObject; - mpOutliner = mpModel->createOutliner( nOutlMode ).release(); + mpOutliner = mpModel->createOutliner( nOutlMode ); // Do the setup after outliner creation, would be useless otherwise if( HasView() ) |