diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-06-29 15:38:29 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-02 08:47:58 +0200 |
commit | 50c63e5c2f7962e8893e2d04b0e958209432f4c9 (patch) | |
tree | 308893225e96328c5ff5fd071a97c2110e61577b /editeng/source/outliner/outliner.cxx | |
parent | d98f1e4e0373782ad71b945dcc92c1c3d6dcf6c8 (diff) |
pass OutlinerParaObject around by std::unique_ptr
SdrText::SetOutlinerParaObject was modified to not check for
self-assign, and instead assert because
the existing check was no longer possible.
Fix bug in SdrUndoObjSetText::Undo(), where it was calling
SdrText::SetOutlinerParaObject unnecessarily,
because NbcSetOutlinerParaObjectForText already does that.
Optimise Outliner::GetEmptyParaObject by creating a new constructor for
OutlinerParaObject,
so we don't need to copy the new object we get back from
GetEmptyTextObject, unnecessarily.
Change-Id: I57c475583d6c31658c154e24992b3d587bad9841
Reviewed-on: https://gerrit.libreoffice.org/56730
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'editeng/source/outliner/outliner.cxx')
-rw-r--r-- | editeng/source/outliner/outliner.cxx | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx index 344ece6b82ff..d595486c2fdb 100644 --- a/editeng/source/outliner/outliner.cxx +++ b/editeng/source/outliner/outliner.cxx @@ -369,7 +369,7 @@ void Outliner::SetHoriAlignIgnoreTrailingWhitespace(bool bEnabled) pEditEngine->SetHoriAlignIgnoreTrailingWhitespace( bEnabled ); } -OutlinerParaObject* Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 nCount ) const +std::unique_ptr<OutlinerParaObject> Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 nCount ) const { if ( static_cast<sal_uLong>(nStartPara) + nCount > static_cast<sal_uLong>(pParaList->GetParagraphCount()) ) @@ -393,7 +393,7 @@ OutlinerParaObject* Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara); } - OutlinerParaObject* pPObj = new OutlinerParaObject(*pText, aParagraphDataVector, bIsEditDoc); + std::unique_ptr<OutlinerParaObject> pPObj(new OutlinerParaObject(*pText, aParagraphDataVector, bIsEditDoc)); pPObj->SetOutlinerMode(GetMode()); return pPObj; @@ -401,9 +401,8 @@ OutlinerParaObject* Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 void Outliner::SetToEmptyText() { - OutlinerParaObject *pEmptyTxt = GetEmptyParaObject(); + std::unique_ptr<OutlinerParaObject> pEmptyTxt = GetEmptyParaObject(); SetText(*pEmptyTxt); - delete pEmptyTxt; } void Outliner::SetText( const OUString& rText, Paragraph* pPara ) @@ -2115,10 +2114,10 @@ NonOverflowingText *Outliner::GetNonOverflowingText() const } } -OutlinerParaObject *Outliner::GetEmptyParaObject() const +std::unique_ptr<OutlinerParaObject> Outliner::GetEmptyParaObject() const { std::unique_ptr<EditTextObject> pEmptyText = pEditEngine->GetEmptyTextObject(); - OutlinerParaObject* pPObj = new OutlinerParaObject( *pEmptyText ); + std::unique_ptr<OutlinerParaObject> pPObj( new OutlinerParaObject( std::move(pEmptyText) )); pPObj->SetOutlinerMode(GetMode()); return pPObj; } |