Kaydet (Commit) 9d31badc authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in disposeOutliner

Change-Id: I038d98a4d4b3dd2a73afd8ddb4c4a7396e52267f
Reviewed-on: https://gerrit.libreoffice.org/59012
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst e4989ae8
...@@ -594,7 +594,7 @@ public: ...@@ -594,7 +594,7 @@ public:
void ReformatAllTextObjects(); void ReformatAllTextObjects();
std::unique_ptr<SdrOutliner> createOutliner( OutlinerMode nOutlinerMode ); std::unique_ptr<SdrOutliner> createOutliner( OutlinerMode nOutlinerMode );
void disposeOutliner( SdrOutliner* pOutliner ); void disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner );
bool IsWriter() const { return !bMyPool; } bool IsWriter() const { return !bMyPool; }
......
...@@ -42,7 +42,7 @@ public: ...@@ -42,7 +42,7 @@ public:
~SdrOutlinerCache(); ~SdrOutlinerCache();
std::unique_ptr<SdrOutliner> createOutliner( OutlinerMode nOutlinerMode ); std::unique_ptr<SdrOutliner> createOutliner( OutlinerMode nOutlinerMode );
void disposeOutliner( SdrOutliner* pOutliner ); void disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner );
std::vector< SdrOutliner* > GetActiveOutliners() const; std::vector< SdrOutliner* > GetActiveOutliners() const;
}; };
......
...@@ -1885,16 +1885,10 @@ std::vector<SdrOutliner*> SdrModel::GetActiveOutliners() const ...@@ -1885,16 +1885,10 @@ std::vector<SdrOutliner*> SdrModel::GetActiveOutliners() const
return aRet; return aRet;
} }
void SdrModel::disposeOutliner( SdrOutliner* pOutliner ) void SdrModel::disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner )
{ {
if( mpOutlinerCache ) if( mpOutlinerCache )
{ mpOutlinerCache->disposeOutliner( std::move(pOutliner) );
mpOutlinerCache->disposeOutliner( pOutliner );
}
else
{
delete pOutliner;
}
} }
SvxNumType SdrModel::GetPageNumType() const SvxNumType SdrModel::GetPageNumType() const
......
...@@ -59,7 +59,7 @@ SdrOutlinerCache::~SdrOutlinerCache() ...@@ -59,7 +59,7 @@ SdrOutlinerCache::~SdrOutlinerCache()
{ {
} }
void SdrOutlinerCache::disposeOutliner( SdrOutliner* pOutliner ) void SdrOutlinerCache::disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner )
{ {
if( pOutliner ) if( pOutliner )
{ {
...@@ -67,26 +67,25 @@ void SdrOutlinerCache::disposeOutliner( SdrOutliner* pOutliner ) ...@@ -67,26 +67,25 @@ void SdrOutlinerCache::disposeOutliner( SdrOutliner* pOutliner )
if( OutlinerMode::OutlineObject == nOutlMode ) if( OutlinerMode::OutlineObject == nOutlMode )
{ {
maModeOutline.emplace_back(pOutliner);
pOutliner->Clear(); pOutliner->Clear();
pOutliner->SetVertical( false ); pOutliner->SetVertical( false );
// Deregister on outliner, might be reused from outliner cache // Deregister on outliner, might be reused from outliner cache
pOutliner->SetNotifyHdl( Link<EENotify&,void>() ); pOutliner->SetNotifyHdl( Link<EENotify&,void>() );
maModeOutline.emplace_back(std::move(pOutliner));
} }
else if( OutlinerMode::TextObject == nOutlMode ) else if( OutlinerMode::TextObject == nOutlMode )
{ {
maModeText.emplace_back(pOutliner);
pOutliner->Clear(); pOutliner->Clear();
pOutliner->SetVertical( false ); pOutliner->SetVertical( false );
// Deregister on outliner, might be reused from outliner cache // Deregister on outliner, might be reused from outliner cache
pOutliner->SetNotifyHdl( Link<EENotify&,void>() ); pOutliner->SetNotifyHdl( Link<EENotify&,void>() );
maModeText.emplace_back(std::move(pOutliner));
} }
else else
{ {
maActiveOutliners.erase(pOutliner); maActiveOutliners.erase(pOutliner.get());
delete pOutliner;
} }
} }
} }
......
...@@ -85,7 +85,7 @@ private: ...@@ -85,7 +85,7 @@ private:
SdrView* mpView; SdrView* mpView;
VclPtr<const vcl::Window> mpWindow; VclPtr<const vcl::Window> mpWindow;
SdrModel* mpModel; // TTTT probably not needed -> use SdrModel from SdrObject (?) 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<SvxOutlinerForwarder> mpTextForwarder;
std::unique_ptr<SvxDrawOutlinerViewForwarder> mpViewForwarder; // if non-NULL, use GetViewModeTextForwarder text forwarder std::unique_ptr<SvxDrawOutlinerViewForwarder> mpViewForwarder; // if non-NULL, use GetViewModeTextForwarder text forwarder
css::uno::Reference< css::linguistic2::XLinguServiceManager2 > m_xLinguServiceManager; css::uno::Reference< css::linguistic2::XLinguServiceManager2 > m_xLinguServiceManager;
...@@ -406,13 +406,12 @@ void SvxTextEditSourceImpl::dispose() ...@@ -406,13 +406,12 @@ void SvxTextEditSourceImpl::dispose()
{ {
if( mpModel ) if( mpModel )
{ {
mpModel->disposeOutliner( mpOutliner ); mpModel->disposeOutliner( std::move(mpOutliner) );
} }
else else
{ {
delete mpOutliner; mpOutliner.reset();
} }
mpOutliner = nullptr;
} }
if( mpModel ) if( mpModel )
...@@ -500,7 +499,7 @@ SvxTextForwarder* SvxTextEditSourceImpl::GetBackgroundTextForwarder() ...@@ -500,7 +499,7 @@ SvxTextForwarder* SvxTextEditSourceImpl::GetBackgroundTextForwarder()
if( pTextObj && pTextObj->IsTextFrame() && pTextObj->GetTextKind() == OBJ_OUTLINETEXT ) if( pTextObj && pTextObj->IsTextFrame() && pTextObj->GetTextKind() == OBJ_OUTLINETEXT )
nOutlMode = OutlinerMode::OutlineObject; nOutlMode = OutlinerMode::OutlineObject;
mpOutliner = mpModel->createOutliner( nOutlMode ).release(); mpOutliner = mpModel->createOutliner( nOutlMode );
// Do the setup after outliner creation, would be useless otherwise // Do the setup after outliner creation, would be useless otherwise
if( HasView() ) if( HasView() )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment