sc/inc/drwlayer.hxx | 4 +- sc/inc/prnsave.hxx | 8 ++--- sc/source/core/data/drwlayer.cxx | 12 +++----- sc/source/core/tool/prnsave.cxx | 16 ++++------- sc/source/ui/docshell/docfunc.cxx | 52 +++++++++++++------------------------- sc/source/ui/drawfunc/futext3.cxx | 8 ++--- sc/source/ui/inc/undoolk.hxx | 2 - sc/source/ui/undo/undobase.cxx | 6 ++-- sc/source/ui/undo/undoblk2.cxx | 2 - sc/source/ui/undo/undoblk3.cxx | 2 - sc/source/ui/undo/undodat.cxx | 2 - sc/source/ui/undo/undoolk.cxx | 2 - sc/source/ui/undo/undotab.cxx | 10 +++---- sc/source/ui/view/drawview.cxx | 2 - 14 files changed, 54 insertions(+), 74 deletions(-)
New commits: commit 50af4bf5c67eaac39d02cfe20584906eec058235 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Mar 23 14:23:42 2018 +0200 loplugin:useuniqueptr in ScDrawLayer Change-Id: I684e391b738be23ba7769b7c5b0a354f43a9226e Reviewed-on: https://gerrit.libreoffice.org/51903 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx index 5f695160cc42..3d9e2b72b685 100644 --- a/sc/inc/drwlayer.hxx +++ b/sc/inc/drwlayer.hxx @@ -96,7 +96,7 @@ class SC_DLLPUBLIC ScDrawLayer : public FmFormModel private: OUString aName; ScDocument* pDoc; - SdrUndoGroup* pUndoGroup; + std::unique_ptr<SdrUndoGroup> pUndoGroup; bool bRecording; bool bAdjustEnabled; bool bHyphenatorSet; @@ -135,7 +135,7 @@ public: void EnableAdjust( bool bSet ) { bAdjustEnabled = bSet; } void BeginCalcUndo(bool bDisableTextEditUsesCommonUndoManager); - SdrUndoGroup* GetCalcUndo(); + std::unique_ptr<SdrUndoGroup> GetCalcUndo(); bool IsRecording() const { return bRecording; } void AddCalcUndo( SdrUndoAction* pUndo ); diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index 6a476c4d535e..3a765e8965bd 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -248,7 +248,6 @@ ScDrawLayer::ScDrawLayer( ScDocument* pDocument, const OUString& rName ) : true ), // bUseExtColorTable (is set below) aName( rName ), pDoc( pDocument ), - pUndoGroup( nullptr ), bRecording( false ), bAdjustEnabled( true ), bHyphenatorSet( false ) @@ -341,7 +340,7 @@ ScDrawLayer::~ScDrawLayer() ClearModel(true); - delete pUndoGroup; + pUndoGroup.reset(); if( !--nInst ) { delete pF3d; @@ -1205,7 +1204,7 @@ void ScDrawLayer::AddCalcUndo( SdrUndoAction* pUndo ) if (bRecording) { if (!pUndoGroup) - pUndoGroup = new SdrUndoGroup(*this); + pUndoGroup.reset(new SdrUndoGroup(*this)); pUndoGroup->AddAction( pUndo ); } @@ -1216,14 +1215,13 @@ void ScDrawLayer::AddCalcUndo( SdrUndoAction* pUndo ) void ScDrawLayer::BeginCalcUndo(bool bDisableTextEditUsesCommonUndoManager) { SetDisableTextEditUsesCommonUndoManager(bDisableTextEditUsesCommonUndoManager); - DELETEZ(pUndoGroup); + pUndoGroup.reset(); bRecording = true; } -SdrUndoGroup* ScDrawLayer::GetCalcUndo() +std::unique_ptr<SdrUndoGroup> ScDrawLayer::GetCalcUndo() { - SdrUndoGroup* pRet = pUndoGroup; - pUndoGroup = nullptr; + std::unique_ptr<SdrUndoGroup> pRet = std::move(pUndoGroup); bRecording = false; SetDisableTextEditUsesCommonUndoManager(false); return pRet; diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 80c99cef7f40..55913db5f4c9 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -179,7 +179,7 @@ bool ScDocFunc::DetectiveAddPred(const ScAddress& rPos) if (bUndo) pModel->BeginCalcUndo(false); bool bDone = ScDetectiveFunc( &rDoc,nTab ).ShowPred( nCol, nRow ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (bDone) @@ -189,15 +189,13 @@ bool ScDocFunc::DetectiveAddPred(const ScAddress& rPos) if (bUndo) { rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDetective( &rDocShell, pUndo, &aOperation ) ); + new ScUndoDetective( &rDocShell, pUndo.release(), &aOperation ) ); } aModificator.SetDocumentModified(); SfxBindings* pBindings = rDocShell.GetViewBindings(); if (pBindings) pBindings->Invalidate( SID_DETECTIVE_REFRESH ); } - else - delete pUndo; return bDone; } @@ -220,7 +218,7 @@ bool ScDocFunc::DetectiveDelPred(const ScAddress& rPos) if (bUndo) pModel->BeginCalcUndo(false); bool bDone = ScDetectiveFunc( &rDoc,nTab ).DeletePred( nCol, nRow ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (bDone) @@ -230,15 +228,13 @@ bool ScDocFunc::DetectiveDelPred(const ScAddress& rPos) if (bUndo) { rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDetective( &rDocShell, pUndo, &aOperation ) ); + new ScUndoDetective( &rDocShell, pUndo.release(), &aOperation ) ); } aModificator.SetDocumentModified(); SfxBindings* pBindings = rDocShell.GetViewBindings(); if (pBindings) pBindings->Invalidate( SID_DETECTIVE_REFRESH ); } - else - delete pUndo; return bDone; } @@ -259,7 +255,7 @@ bool ScDocFunc::DetectiveAddSucc(const ScAddress& rPos) if (bUndo) pModel->BeginCalcUndo(false); bool bDone = ScDetectiveFunc( &rDoc,nTab ).ShowSucc( nCol, nRow ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (bDone) @@ -269,15 +265,13 @@ bool ScDocFunc::DetectiveAddSucc(const ScAddress& rPos) if (bUndo) { rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDetective( &rDocShell, pUndo, &aOperation ) ); + new ScUndoDetective( &rDocShell, pUndo.release(), &aOperation ) ); } aModificator.SetDocumentModified(); SfxBindings* pBindings = rDocShell.GetViewBindings(); if (pBindings) pBindings->Invalidate( SID_DETECTIVE_REFRESH ); } - else - delete pUndo; return bDone; } @@ -300,7 +294,7 @@ bool ScDocFunc::DetectiveDelSucc(const ScAddress& rPos) if (bUndo) pModel->BeginCalcUndo(false); bool bDone = ScDetectiveFunc( &rDoc,nTab ).DeleteSucc( nCol, nRow ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (bDone) @@ -310,15 +304,13 @@ bool ScDocFunc::DetectiveDelSucc(const ScAddress& rPos) if (bUndo) { rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDetective( &rDocShell, pUndo, &aOperation ) ); + new ScUndoDetective( &rDocShell, pUndo.release(), &aOperation ) ); } aModificator.SetDocumentModified(); SfxBindings* pBindings = rDocShell.GetViewBindings(); if (pBindings) pBindings->Invalidate( SID_DETECTIVE_REFRESH ); } - else - delete pUndo; return bDone; } @@ -339,7 +331,7 @@ bool ScDocFunc::DetectiveAddError(const ScAddress& rPos) if (bUndo) pModel->BeginCalcUndo(false); bool bDone = ScDetectiveFunc( &rDoc,nTab ).ShowError( nCol, nRow ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (bDone) @@ -349,15 +341,13 @@ bool ScDocFunc::DetectiveAddError(const ScAddress& rPos) if (bUndo) { rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDetective( &rDocShell, pUndo, &aOperation ) ); + new ScUndoDetective( &rDocShell, pUndo.release(), &aOperation ) ); } aModificator.SetDocumentModified(); SfxBindings* pBindings = rDocShell.GetViewBindings(); if (pBindings) pBindings->Invalidate( SID_DETECTIVE_REFRESH ); } - else - delete pUndo; return bDone; } @@ -379,7 +369,7 @@ bool ScDocFunc::DetectiveMarkInvalid(SCTAB nTab) pModel->BeginCalcUndo(false); bool bOverflow; bool bDone = ScDetectiveFunc( &rDoc,nTab ).MarkInvalid( bOverflow ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (pWaitWin) @@ -389,7 +379,7 @@ bool ScDocFunc::DetectiveMarkInvalid(SCTAB nTab) if (pUndo && bUndo) { pUndo->SetComment( ScGlobal::GetRscString( STR_UNDO_DETINVALID ) ); - rDocShell.GetUndoManager()->AddUndoAction( pUndo ); + rDocShell.GetUndoManager()->AddUndoAction( pUndo.release() ); } aModificator.SetDocumentModified(); if ( bOverflow ) @@ -400,8 +390,6 @@ bool ScDocFunc::DetectiveMarkInvalid(SCTAB nTab) xInfoBox->run(); } } - else - delete pUndo; return bDone; } @@ -420,7 +408,7 @@ bool ScDocFunc::DetectiveDelAll(SCTAB nTab) if (bUndo) pModel->BeginCalcUndo(false); bool bDone = ScDetectiveFunc( &rDoc,nTab ).DeleteAll( ScDetectiveDelete::Detective ); - SdrUndoGroup* pUndo = nullptr; + std::unique_ptr<SdrUndoGroup> pUndo; if (bUndo) pUndo = pModel->GetCalcUndo(); if (bDone) @@ -435,15 +423,13 @@ bool ScDocFunc::DetectiveDelAll(SCTAB nTab) if (bUndo) { rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDetective( &rDocShell, pUndo, nullptr, pUndoList ) ); + new ScUndoDetective( &rDocShell, pUndo.release(), nullptr, pUndoList ) ); } aModificator.SetDocumentModified(); SfxBindings* pBindings = rDocShell.GetViewBindings(); if (pBindings) pBindings->Invalidate( SID_DETECTIVE_REFRESH ); } - else - delete pUndo; return bDone; } @@ -502,13 +488,13 @@ bool ScDocFunc::DetectiveRefresh( bool bAutomatic ) if (bUndo) { - SdrUndoGroup* pUndo = pModel->GetCalcUndo(); + std::unique_ptr<SdrUndoGroup> pUndo = pModel->GetCalcUndo(); if (pUndo) { pUndo->SetComment( ScGlobal::GetRscString( STR_UNDO_DETREFRESH ) ); // associate with the last action rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoDraw( pUndo, &rDocShell ), + new ScUndoDraw( pUndo.release(), &rDocShell ), bAutomatic ); } } @@ -1297,7 +1283,7 @@ void ScDocFunc::ReplaceNote( const ScAddress& rPos, const OUString& rNoteText, c // create the undo action if( pUndoMgr && (aOldData.mxCaption || aNewData.mxCaption) ) - pUndoMgr->AddUndoAction( new ScUndoReplaceNote( rDocShell, rPos, aOldData, aNewData, pDrawLayer->GetCalcUndo() ) ); + pUndoMgr->AddUndoAction( new ScUndoReplaceNote( rDocShell, rPos, aOldData, aNewData, pDrawLayer->GetCalcUndo().release() ) ); // repaint cell (to make note marker visible) rDocShell.PostPaintCell( rPos ); @@ -4894,9 +4880,9 @@ bool ScDocFunc::MergeCells( const ScCellMergeOption& rOption, bool bContents, bo if (pUndoDoc) { - SdrUndoGroup* pDrawUndo = rDoc.GetDrawLayer() ? rDoc.GetDrawLayer()->GetCalcUndo() : nullptr; + std::unique_ptr<SdrUndoGroup> pDrawUndo = rDoc.GetDrawLayer() ? rDoc.GetDrawLayer()->GetCalcUndo() : nullptr; rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoMerge(&rDocShell, rOption, bNeedContentsUndo, pUndoDoc, pDrawUndo) ); + new ScUndoMerge(&rDocShell, rOption, bNeedContentsUndo, pUndoDoc, pDrawUndo.release()) ); } aModificator.SetDocumentModified(); diff --git a/sc/source/ui/drawfunc/futext3.cxx b/sc/source/ui/drawfunc/futext3.cxx index 3e0dff9d1cc7..f6608432422d 100644 --- a/sc/source/ui/drawfunc/futext3.cxx +++ b/sc/source/ui/drawfunc/futext3.cxx @@ -77,7 +77,7 @@ void FuText::StopEditMode() { /* Put all undo actions already collected (e.g. create caption object) and all following undo actions (text changed) together into a ListAction. */ - SdrUndoGroup* pCalcUndo = pDrawLayer->GetCalcUndo(); + std::unique_ptr<SdrUndoGroup> pCalcUndo = pDrawLayer->GetCalcUndo(); if(pCalcUndo) { @@ -91,9 +91,9 @@ void FuText::StopEditMode() // create a "insert note" undo action if needed if( bNewNote ) - pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, aNotePos, pNote->GetNoteData(), true, pCalcUndo ) ); + pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, aNotePos, pNote->GetNoteData(), true, pCalcUndo.release() ) ); else - pUndoMgr->AddUndoAction( pCalcUndo ); + pUndoMgr->AddUndoAction( pCalcUndo.release() ); } } @@ -142,7 +142,7 @@ void FuText::StopEditMode() // delete note from document (removes caption, but does not delete it) rDoc.ReleaseNote(aNotePos); // create undo action for removed note - pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, aNotePos, aNoteData, false, pDrawLayer->GetCalcUndo() ) ); + pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, aNotePos, aNoteData, false, pDrawLayer->GetCalcUndo().release() ) ); } else { diff --git a/sc/source/ui/inc/undoolk.hxx b/sc/source/ui/inc/undoolk.hxx index 4474cf3f4a64..c9c80b23fa7e 100644 --- a/sc/source/ui/inc/undoolk.hxx +++ b/sc/source/ui/inc/undoolk.hxx @@ -23,7 +23,7 @@ class SdrUndoAction; class ScDocument; -SdrUndoAction* GetSdrUndoAction ( ScDocument* pDoc ); +std::unique_ptr<SdrUndoAction> GetSdrUndoAction( ScDocument* pDoc ); void DoSdrUndoAction ( SdrUndoAction* pUndoAction, ScDocument* pDoc ); void RedoSdrUndoAction ( SdrUndoAction* pUndoAction ); void DeleteSdrUndoAction ( SdrUndoAction* pUndoAction ); diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx index d88d29d71b53..abaaa8a88ae7 100644 --- a/sc/source/ui/undo/undobase.cxx +++ b/sc/source/ui/undo/undobase.cxx @@ -245,7 +245,7 @@ ScBlockUndo::ScBlockUndo( ScDocShell* pDocSh, const ScRange& rRange, aBlockRange( rRange ), eMode( eBlockMode ) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); } ScBlockUndo::~ScBlockUndo() @@ -346,7 +346,7 @@ ScMultiBlockUndo::ScMultiBlockUndo( ScSimpleUndo(pDocSh), maBlockRanges(rRanges) { - mpDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + mpDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); } ScMultiBlockUndo::~ScMultiBlockUndo() @@ -416,7 +416,7 @@ ScMoveUndo::ScMoveUndo( ScDocShell* pDocSh, ScDocument* pRefDoc, ScRefUndoData* ScDocument& rDoc = pDocShell->GetDocument(); if (pRefUndoData) pRefUndoData->DeleteUnchanged(&rDoc); - pDrawUndo = GetSdrUndoAction( &rDoc ); + pDrawUndo = GetSdrUndoAction( &rDoc ).release(); } ScMoveUndo::~ScMoveUndo() diff --git a/sc/source/ui/undo/undoblk2.cxx b/sc/source/ui/undo/undoblk2.cxx index d8baab68c6af..3b1c99a7d66e 100644 --- a/sc/source/ui/undo/undoblk2.cxx +++ b/sc/source/ui/undo/undoblk2.cxx @@ -54,7 +54,7 @@ ScUndoWidthOrHeight::ScUndoWidthOrHeight( ScDocShell* pNewDocShell, eMode( eNewMode ), pDrawUndo( nullptr ) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); } ScUndoWidthOrHeight::~ScUndoWidthOrHeight() diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx index 8e6dd0f50358..99973bd4d7e7 100644 --- a/sc/source/ui/undo/undoblk3.cxx +++ b/sc/source/ui/undo/undoblk3.cxx @@ -75,7 +75,7 @@ ScUndoDeleteContents::ScUndoDeleteContents( bMulti ( bNewMulti ) // unnecessary { if (bObjects) - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); if ( !(aMarkData.IsMarked() || aMarkData.IsMultiMarked()) ) // if no cell is selected: aMarkData.SetMarkArea( aRange ); // select cell under cursor diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx index afaed1811b1e..f7ee7e4779b7 100644 --- a/sc/source/ui/undo/undodat.cxx +++ b/sc/source/ui/undo/undodat.cxx @@ -721,7 +721,7 @@ ScUndoQuery::ScUndoQuery( ScDocShell* pNewDocShell, SCTAB nNewTab, const ScQuery aAdvSource = *pAdvSrc; } - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); } ScUndoQuery::~ScUndoQuery() diff --git a/sc/source/ui/undo/undoolk.cxx b/sc/source/ui/undo/undoolk.cxx index 060aac26c00b..6a8632fad499 100644 --- a/sc/source/ui/undo/undoolk.cxx +++ b/sc/source/ui/undo/undoolk.cxx @@ -23,7 +23,7 @@ #include <drwlayer.hxx> #include <undoolk.hxx> -SdrUndoAction* GetSdrUndoAction( ScDocument* pDoc ) +std::unique_ptr<SdrUndoAction> GetSdrUndoAction( ScDocument* pDoc ) { ScDrawLayer* pLayer = pDoc->GetDrawLayer(); if (pLayer) diff --git a/sc/source/ui/undo/undotab.cxx b/sc/source/ui/undo/undotab.cxx index 290457ce4f87..d99555e6a277 100644 --- a/sc/source/ui/undo/undotab.cxx +++ b/sc/source/ui/undo/undotab.cxx @@ -67,7 +67,7 @@ ScUndoInsertTab::ScUndoInsertTab( ScDocShell* pNewDocShell, nTab( nTabNum ), bAppend( bApp ) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); SetChangeTrack(); } @@ -159,7 +159,7 @@ ScUndoInsertTables::ScUndoInsertTables( ScDocShell* pNewDocShell, aNameList( newNameList ), nTab( nTabNum ) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); SetChangeTrack(); } @@ -573,7 +573,7 @@ ScUndoCopyTab::ScUndoCopyTab( mpNewNames(pNewNames), pDrawUndo( nullptr ) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); if (mpNewNames && mpNewTabs->size() != mpNewNames->size()) // The sizes differ. Something is wrong. @@ -784,7 +784,7 @@ ScUndoMakeScenario::ScUndoMakeScenario( ScDocShell* pNewDocShell, nFlags( nF ), pDrawUndo( nullptr ) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); } ScUndoMakeScenario::~ScUndoMakeScenario() @@ -863,7 +863,7 @@ ScUndoImportTab::ScUndoImportTab(ScDocShell* pShell, , nCount(nNewCount) , pDrawUndo(nullptr) { - pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ); + pDrawUndo = GetSdrUndoAction( &pDocShell->GetDocument() ).release(); } ScUndoImportTab::~ScUndoImportTab() diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx index 47e262ec83f3..0a3916ced717 100644 --- a/sc/source/ui/view/drawview.cxx +++ b/sc/source/ui/view/drawview.cxx @@ -874,7 +874,7 @@ void ScDrawView::DeleteMarked() delete pNote; // add the undo action for the note if( bUndo ) - pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, pCaptData->maStart, aNoteData, false, pDrawLayer->GetCalcUndo() ) ); + pUndoMgr->AddUndoAction( new ScUndoReplaceNote( *pDocShell, pCaptData->maStart, aNoteData, false, pDrawLayer->GetCalcUndo().release() ) ); // repaint the cell to get rid of the note marker if( pDocShell ) pDocShell->PostPaintCell( pCaptData->maStart ); commit 26ebaae4f1e43d43646cf132379058b4b78065af Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Mar 23 12:47:02 2018 +0200 loplugin:useuniqueptr in ScPrintSaverTab Change-Id: I51ef59e97e9b46cf9496dbefaabcc15471e9cdae Reviewed-on: https://gerrit.libreoffice.org/51902 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/inc/prnsave.hxx b/sc/inc/prnsave.hxx index 463a424451ad..f5137aefebd9 100644 --- a/sc/inc/prnsave.hxx +++ b/sc/inc/prnsave.hxx @@ -31,8 +31,8 @@ class ScPrintSaverTab typedef ::std::vector< ScRange > ScRangeVec; ScRangeVec maPrintRanges; ///< Array - ScRange* mpRepeatCol; ///< single - ScRange* mpRepeatRow; ///< single + std::unique_ptr<ScRange> mpRepeatCol; ///< single + std::unique_ptr<ScRange> mpRepeatRow; ///< single bool mbEntireSheet; public: @@ -44,8 +44,8 @@ public: const ScRangeVec& GetPrintRanges() const { return maPrintRanges; } bool IsEntireSheet() const { return mbEntireSheet; } - const ScRange* GetRepeatCol() const { return mpRepeatCol; } - const ScRange* GetRepeatRow() const { return mpRepeatRow; } + const ScRange* GetRepeatCol() const { return mpRepeatCol.get(); } + const ScRange* GetRepeatRow() const { return mpRepeatRow.get(); } bool operator==( const ScPrintSaverTab& rCmp ) const; }; diff --git a/sc/source/core/tool/prnsave.cxx b/sc/source/core/tool/prnsave.cxx index 223647db7cee..97b3ebe09101 100644 --- a/sc/source/core/tool/prnsave.cxx +++ b/sc/source/core/tool/prnsave.cxx @@ -26,16 +26,14 @@ // Data per table ScPrintSaverTab::ScPrintSaverTab() : - mpRepeatCol(nullptr), - mpRepeatRow(nullptr), mbEntireSheet(false) { } ScPrintSaverTab::~ScPrintSaverTab() { - delete mpRepeatCol; - delete mpRepeatRow; + mpRepeatCol.reset(); + mpRepeatRow.reset(); } void ScPrintSaverTab::SetAreas( const ScRangeVec& rRanges, bool bEntireSheet ) @@ -46,10 +44,8 @@ void ScPrintSaverTab::SetAreas( const ScRangeVec& rRanges, bool bEntireSheet ) void ScPrintSaverTab::SetRepeat( const ScRange* pCol, const ScRange* pRow ) { - delete mpRepeatCol; - mpRepeatCol = pCol ? new ScRange(*pCol) : nullptr; - delete mpRepeatRow; - mpRepeatRow = pRow ? new ScRange(*pRow) : nullptr; + mpRepeatCol.reset(pCol ? new ScRange(*pCol) : nullptr); + mpRepeatRow.reset(pRow ? new ScRange(*pRow) : nullptr); } inline bool PtrEqual( const ScRange* p1, const ScRange* p2 ) @@ -60,8 +56,8 @@ inline bool PtrEqual( const ScRange* p1, const ScRange* p2 ) bool ScPrintSaverTab::operator==( const ScPrintSaverTab& rCmp ) const { return - PtrEqual( mpRepeatCol, rCmp.mpRepeatCol ) && - PtrEqual( mpRepeatRow, rCmp.mpRepeatRow ) && + PtrEqual( mpRepeatCol.get(), rCmp.mpRepeatCol.get() ) && + PtrEqual( mpRepeatRow.get(), rCmp.mpRepeatRow.get() ) && (mbEntireSheet == rCmp.mbEntireSheet) && (maPrintRanges == rCmp.maPrintRanges); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits