diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-18 15:50:12 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-19 11:57:22 +0200 |
commit | 8ee6e15080cd98c654e213d70f0b169ad541c56e (patch) | |
tree | c27c1a513fa5e0950e9ef3a3f22c0877ec593687 /sw | |
parent | 174d8630d754c429b6a88964edae9c9dda707344 (diff) |
loplugin:useuniqueptr in SwUndoSplitTable
Change-Id: I364d57e30a3b8470d1b4739096f13248e1389a08
Reviewed-on: https://gerrit.libreoffice.org/57694
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/swtable.hxx | 2 | ||||
-rw-r--r-- | sw/source/core/docnode/ndtbl.cxx | 4 | ||||
-rw-r--r-- | sw/source/core/inc/UndoTable.hxx | 10 | ||||
-rw-r--r-- | sw/source/core/table/swnewtable.cxx | 12 | ||||
-rw-r--r-- | sw/source/core/undo/untbl.cxx | 18 |
5 files changed, 21 insertions, 25 deletions
diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx index 4dc1e6831a1c..eea1f64fa53a 100644 --- a/sw/inc/swtable.hxx +++ b/sw/inc/swtable.hxx @@ -217,7 +217,7 @@ public: // SwSavRowSpan is the structure needed by Undo to undo the split operation // CleanUpRowSpan corrects the (top of the) second table and delivers the structure // for Undo - SwSaveRowSpan* CleanUpTopRowSpan( sal_uInt16 nSplitLine ); + std::unique_ptr<SwSaveRowSpan> CleanUpTopRowSpan( sal_uInt16 nSplitLine ); // RestoreRowSpan is called by Undo to restore the old row span values void RestoreRowSpan( const SwSaveRowSpan& ); // CleanUpBottomRowSpan corrects the overhanging row spans at the end of the first table diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index d0e177b48548..936db89cd7e9 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -3134,12 +3134,12 @@ bool SwDoc::SplitTable( const SwPosition& rPos, SplitTable_HeadlineOption eHdlnM if( pNew ) { - SwSaveRowSpan* pSaveRowSp = pNew->GetTable().CleanUpTopRowSpan( rTable.GetTabLines().size() ); + std::unique_ptr<SwSaveRowSpan> pSaveRowSp = pNew->GetTable().CleanUpTopRowSpan( rTable.GetTabLines().size() ); SwUndoSplitTable* pUndo = nullptr; if (GetIDocumentUndoRedo().DoesUndo()) { pUndo = new SwUndoSplitTable( - *pNew, pSaveRowSp, eHdlnMode, bCalcNewSize); + *pNew, std::move(pSaveRowSp), eHdlnMode, bCalcNewSize); GetIDocumentUndoRedo().AppendUndo(pUndo); if( aHistory.Count() ) pUndo->SaveFormula( aHistory ); diff --git a/sw/source/core/inc/UndoTable.hxx b/sw/source/core/inc/UndoTable.hxx index 95fe3cad5675..74bfedfecf2a 100644 --- a/sw/source/core/inc/UndoTable.hxx +++ b/sw/source/core/inc/UndoTable.hxx @@ -324,15 +324,15 @@ public: class SwUndoSplitTable : public SwUndo { sal_uLong nTableNode, nOffset; - SwSaveRowSpan* mpSaveRowSpan; // stores row span values at the splitting row - SaveTable* pSavTable; - SwHistory* pHistory; + std::unique_ptr<SwSaveRowSpan> mpSaveRowSpan; // stores row span values at the splitting row + std::unique_ptr<SaveTable> pSavTable; + std::unique_ptr<SwHistory> pHistory; SplitTable_HeadlineOption nMode; sal_uInt16 nFormulaEnd; bool bCalcNewSize; public: - SwUndoSplitTable( const SwTableNode& rTableNd, SwSaveRowSpan* pRowSp, + SwUndoSplitTable( const SwTableNode& rTableNd, std::unique_ptr<SwSaveRowSpan> pRowSp, SplitTable_HeadlineOption nMode, bool bCalcNewSize ); virtual ~SwUndoSplitTable() override; @@ -342,7 +342,7 @@ public: virtual void RepeatImpl( ::sw::RepeatContext & ) override; void SetTableNodeOffset( sal_uLong nIdx ) { nOffset = nIdx - nTableNode; } - SwHistory* GetHistory() { return pHistory; } + SwHistory* GetHistory() { return pHistory.get(); } void SaveFormula( SwHistory& rHistory ); }; diff --git a/sw/source/core/table/swnewtable.cxx b/sw/source/core/table/swnewtable.cxx index 30a64747182d..89da33af871c 100644 --- a/sw/source/core/table/swnewtable.cxx +++ b/sw/source/core/table/swnewtable.cxx @@ -2062,17 +2062,13 @@ void SwTable::RestoreRowSpan( const SwSaveRowSpan& rSave ) } } -SwSaveRowSpan* SwTable::CleanUpTopRowSpan( sal_uInt16 nSplitLine ) +std::unique_ptr<SwSaveRowSpan> SwTable::CleanUpTopRowSpan( sal_uInt16 nSplitLine ) { - SwSaveRowSpan* pRet = nullptr; if( !IsNewModel() ) - return pRet; - pRet = new SwSaveRowSpan( GetTabLines()[0]->GetTabBoxes(), nSplitLine ); + return nullptr; + std::unique_ptr<SwSaveRowSpan> pRet(new SwSaveRowSpan( GetTabLines()[0]->GetTabBoxes(), nSplitLine )); if( pRet->mnRowSpans.empty() ) - { - delete pRet; - pRet = nullptr; - } + return nullptr; return pRet; } diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index de4d29ffb07b..411d2d8ac1a9 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -2843,19 +2843,19 @@ void SwUndoCpyTable::RedoImpl(::sw::UndoRedoContext & rContext) } SwUndoSplitTable::SwUndoSplitTable( const SwTableNode& rTableNd, - SwSaveRowSpan* pRowSp, SplitTable_HeadlineOption eMode, bool bNewSize ) + std::unique_ptr<SwSaveRowSpan> pRowSp, SplitTable_HeadlineOption eMode, bool bNewSize ) : SwUndo( SwUndoId::SPLIT_TABLE, rTableNd.GetDoc() ), - nTableNode( rTableNd.GetIndex() ), nOffset( 0 ), mpSaveRowSpan( pRowSp ), pSavTable( nullptr ), - pHistory( nullptr ), nMode( eMode ), nFormulaEnd( 0 ), bCalcNewSize( bNewSize ) + nTableNode( rTableNd.GetIndex() ), nOffset( 0 ), mpSaveRowSpan( std::move(pRowSp) ), + nMode( eMode ), nFormulaEnd( 0 ), bCalcNewSize( bNewSize ) { switch( nMode ) { case SplitTable_HeadlineOption::BoxAttrAllCopy: - pHistory = new SwHistory; + pHistory.reset(new SwHistory); SAL_FALLTHROUGH; case SplitTable_HeadlineOption::BorderCopy: case SplitTable_HeadlineOption::BoxAttrCopy: - pSavTable = new SaveTable( rTableNd.GetTable(), 1, false ); + pSavTable.reset(new SaveTable( rTableNd.GetTable(), 1, false )); break; default: break; } @@ -2863,9 +2863,9 @@ SwUndoSplitTable::SwUndoSplitTable( const SwTableNode& rTableNd, SwUndoSplitTable::~SwUndoSplitTable() { - delete pSavTable; - delete pHistory; - delete mpSaveRowSpan; + pSavTable.reset(); + pHistory.reset(); + mpSaveRowSpan.reset(); } void SwUndoSplitTable::UndoImpl(::sw::UndoRedoContext & rContext) @@ -2968,7 +2968,7 @@ void SwUndoSplitTable::RepeatImpl(::sw::RepeatContext & rContext) void SwUndoSplitTable::SaveFormula( SwHistory& rHistory ) { if( !pHistory ) - pHistory = new SwHistory; + pHistory.reset(new SwHistory); nFormulaEnd = rHistory.Count(); pHistory->Move( 0, &rHistory ); |