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:
void ReformatAllTextObjects();
std::unique_ptr<SdrOutliner> createOutliner( OutlinerMode nOutlinerMode );
void disposeOutliner( SdrOutliner* pOutliner );
void disposeOutliner( std::unique_ptr<SdrOutliner> pOutliner );
bool IsWriter() const { return !bMyPool; }
......
......@@ -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;
};
......
......@@ -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
......
......@@ -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());
}
}
}
......
......@@ -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() )
......
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