sc/source/ui/docshell/docsh.cxx | 42 +++++++++++++++++------------------- sc/source/ui/docshell/docsh2.cxx | 2 - sc/source/ui/docshell/docsh3.cxx | 10 +++----- sc/source/ui/docshell/docsh5.cxx | 14 ++++-------- sc/source/ui/inc/docsh.hxx | 26 +++++++++++----------- sc/source/ui/miscdlgs/optsolver.cxx | 6 ++--- sc/source/ui/undo/undobase.cxx | 2 - 7 files changed, 47 insertions(+), 55 deletions(-)
New commits: commit ceff8f7359fe8ef7e1be3cf75563f5c6a34c7049 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Wed Jun 27 11:14:36 2018 +0200 loplugin:useuniqueptr in ScDocShell Change-Id: I6d4d4899670d8c3254f8c4337a14ba2bb937a2bf Reviewed-on: https://gerrit.libreoffice.org/56555 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index 474bf7e06ed0..5ac53c1e4e10 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -267,7 +267,7 @@ void ScDocShell::BeforeXMLLoading() // prevent unnecessary broadcasts and updates OSL_ENSURE(m_pModificator == nullptr, "The Modificator should not exist"); - m_pModificator = new ScDocShellModificator( *this ); + m_pModificator.reset( new ScDocShellModificator( *this ) ); m_aDocument.SetImportingXML( true ); m_aDocument.EnableExecuteLink( false ); // #i101304# to be safe, prevent nested loading from external references @@ -372,8 +372,7 @@ void ScDocShell::AfterXMLLoading(bool bRet) // will set the cells dirty. if (eRecalcState == ScDocument::HardRecalcState::OFF) m_aDocument.SetHardRecalcState(ScDocument::HardRecalcState::TEMPORARY); - delete m_pModificator; - m_pModificator = nullptr; + m_pModificator.reset(); m_aDocument.SetHardRecalcState(eRecalcState); } else @@ -713,7 +712,7 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint ) sal_uInt32 nTimeout = rStlHint.GetTimeout(); if (!m_pAutoStyleList) - m_pAutoStyleList = new ScAutoStyleList(this); + m_pAutoStyleList.reset( new ScAutoStyleList(this) ); m_pAutoStyleList->AddInitial( aRange, aName1, nTimeout, aName2 ); } else if ( dynamic_cast<const SfxEventHint*>(&rHint) ) @@ -2779,9 +2778,9 @@ bool ScDocShell::HasAutomaticTableName( const OUString& rFilter ) || rFilter == pFilterRtf; } -ScDocFunc *ScDocShell::CreateDocFunc() +std::unique_ptr<ScDocFunc> ScDocShell::CreateDocFunc() { - return new ScDocFuncDirect( *this ); + return o3tl::make_unique<ScDocFuncDirect>( *this ); } ScDocument* ScDocShell::GetClipDoc() @@ -2899,28 +2898,28 @@ ScDocShell::~ScDocShell() EndListening(*pStlPool); EndListening(*this); - delete m_pAutoStyleList; + m_pAutoStyleList.reset(); SfxApplication *pSfxApp = SfxGetpApp(); if ( pSfxApp->GetDdeService() ) // Delete DDE for Document pSfxApp->RemoveDdeTopic( this ); - delete m_pDocFunc; + m_pDocFunc.reset(); delete m_aDocument.mpUndoManager; m_aDocument.mpUndoManager = nullptr; - delete m_pImpl; + m_pImpl.reset(); - delete m_pPaintLockData; + m_pPaintLockData.reset(); - delete m_pSolverSaveData; - delete m_pSheetSaveData; - delete m_pFormatSaveData; - delete m_pOldAutoDBRange; + m_pSolverSaveData.reset(); + m_pSheetSaveData.reset(); + m_pFormatSaveData.reset(); + m_pOldAutoDBRange.reset(); if (m_pModificator) { OSL_FAIL("The Modificator should not exist"); - delete m_pModificator; + m_pModificator.reset(); } } @@ -3077,26 +3076,25 @@ vcl::Window* ScDocShell::GetActiveDialogParent() return Application::GetDefDialogParent(); } -void ScDocShell::SetSolverSaveData( const ScOptSolverSave& rData ) +void ScDocShell::SetSolverSaveData( std::unique_ptr<ScOptSolverSave> pData ) { - delete m_pSolverSaveData; - m_pSolverSaveData = new ScOptSolverSave( rData ); + m_pSolverSaveData = std::move(pData); } ScSheetSaveData* ScDocShell::GetSheetSaveData() { if (!m_pSheetSaveData) - m_pSheetSaveData = new ScSheetSaveData; + m_pSheetSaveData.reset( new ScSheetSaveData ); - return m_pSheetSaveData; + return m_pSheetSaveData.get(); } ScFormatSaveData* ScDocShell::GetFormatSaveData() { if (!m_pFormatSaveData) - m_pFormatSaveData = new ScFormatSaveData; + m_pFormatSaveData.reset( new ScFormatSaveData ); - return m_pFormatSaveData; + return m_pFormatSaveData.get(); } namespace { diff --git a/sc/source/ui/docshell/docsh2.cxx b/sc/source/ui/docshell/docsh2.cxx index e4f4eaaf3c76..e8b884735d4e 100644 --- a/sc/source/ui/docshell/docsh2.cxx +++ b/sc/source/ui/docshell/docsh2.cxx @@ -108,7 +108,7 @@ void ScDocShell::InitItems() PutItem( SvxLineEndListItem ( pDrawLayer->GetLineEndList(), SID_LINEEND_LIST ) ); // Other modifications after creation of the DrawLayer - pDrawLayer->SetNotifyUndoActionHdl( LINK( m_pDocFunc, ScDocFunc, NotifyDrawUndo ) ); + pDrawLayer->SetNotifyUndoActionHdl( LINK( m_pDocFunc.get(), ScDocFunc, NotifyDrawUndo ) ); } else if (!utl::ConfigManager::IsFuzzing()) { diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx index ea1189c3da3a..0a5da4c4b807 100644 --- a/sc/source/ui/docshell/docsh3.cxx +++ b/sc/source/ui/docshell/docsh3.cxx @@ -231,7 +231,7 @@ void ScDocShell::UpdatePaintExt( sal_uInt16& rExtFlags, SCCOL nStartCol, SCROW n void ScDocShell::LockPaint_Impl(bool bDoc) { if ( !m_pPaintLockData ) - m_pPaintLockData = new ScPaintLockData; + m_pPaintLockData.reset( new ScPaintLockData ); m_pPaintLockData->IncLevel(bDoc); } @@ -245,8 +245,8 @@ void ScDocShell::UnlockPaint_Impl(bool bDoc) { // Execute Paint now - ScPaintLockData* pPaint = m_pPaintLockData; - m_pPaintLockData = nullptr; // don't continue collecting + // don't continue collecting + std::unique_ptr<ScPaintLockData> pPaint = std::move(m_pPaintLockData); ScRangeListRef xRangeList = pPaint->GetRangeList(); if ( xRangeList.is() ) @@ -264,8 +264,6 @@ void ScDocShell::UnlockPaint_Impl(bool bDoc) if ( pPaint->GetModified() ) SetDocumentModified(); - - delete pPaint; } } else @@ -301,7 +299,7 @@ void ScDocShell::SetLockCount(sal_uInt16 nNew) if (nNew) // set { if ( !m_pPaintLockData ) - m_pPaintLockData = new ScPaintLockData; + m_pPaintLockData.reset( new ScPaintLockData ); m_pPaintLockData->SetDocLevel(nNew-1); LockDocument_Impl(nNew); } diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx index feb168a74a07..06fe4e22c7ba 100644 --- a/sc/source/ui/docshell/docsh5.cxx +++ b/sc/source/ui/docshell/docsh5.cxx @@ -241,14 +241,13 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGe // sheet-local anonymous DBData from pOldAutoDBRange, unset so // that won't happen with data of a previous sheet-local // DBData. - delete m_pOldAutoDBRange; - m_pOldAutoDBRange = nullptr; + m_pOldAutoDBRange.reset(); } else if (!m_pOldAutoDBRange) { // store the old unnamed database range with its settings for undo // (store at the first change, get the state before all changes) - m_pOldAutoDBRange = new ScDBData( *pNoNameData ); + m_pOldAutoDBRange.reset( new ScDBData( *pNoNameData ) ); } else if (m_pOldAutoDBRange->GetTab() != pNoNameData->GetTab()) { @@ -360,11 +359,9 @@ ScDBData* ScDocShell::GetAnonymousDBData(const ScRange& rRange) return pData; } -ScDBData* ScDocShell::GetOldAutoDBRange() +std::unique_ptr<ScDBData> ScDocShell::GetOldAutoDBRange() { - ScDBData* pRet = m_pOldAutoDBRange; - m_pOldAutoDBRange = nullptr; - return pRet; // has to be deleted by caller! + return std::move(m_pOldAutoDBRange); } void ScDocShell::CancelAutoDBRange() @@ -396,8 +393,7 @@ void ScDocShell::CancelAutoDBRange() } } - delete m_pOldAutoDBRange; - m_pOldAutoDBRange = nullptr; + m_pOldAutoDBRange.reset(); } } diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx index 6082dee5bc6f..41c7e9b5845e 100644 --- a/sc/source/ui/inc/docsh.hxx +++ b/sc/source/ui/inc/docsh.hxx @@ -91,8 +91,8 @@ class SC_DLLPUBLIC ScDocShell final: public SfxObjectShell, public SfxListener OUString m_aDdeTextFmt; double m_nPrtToScreenFactor; - DocShell_Impl* m_pImpl; - ScDocFunc* m_pDocFunc; + std::unique_ptr<DocShell_Impl> m_pImpl; + std::unique_ptr<ScDocFunc> m_pDocFunc; bool m_bHeaderOn; bool m_bFooterOn; @@ -105,15 +105,15 @@ class SC_DLLPUBLIC ScDocShell final: public SfxObjectShell, public SfxListener sal_uInt16 m_nDocumentLock; sal_Int16 m_nCanUpdate; // stores the UpdateDocMode from loading a document till update links - ScDBData* m_pOldAutoDBRange; + std::unique_ptr<ScDBData> m_pOldAutoDBRange; - ScAutoStyleList* m_pAutoStyleList; - ScPaintLockData* m_pPaintLockData; - ScOptSolverSave* m_pSolverSaveData; - ScSheetSaveData* m_pSheetSaveData; - ScFormatSaveData* m_pFormatSaveData; + std::unique_ptr<ScAutoStyleList> m_pAutoStyleList; + std::unique_ptr<ScPaintLockData> m_pPaintLockData; + std::unique_ptr<ScOptSolverSave> m_pSolverSaveData; + std::unique_ptr<ScSheetSaveData> m_pSheetSaveData; + std::unique_ptr<ScFormatSaveData> m_pFormatSaveData; - ScDocShellModificator* m_pModificator; // #109979#; is used to load XML (created in BeforeXMLLoading and destroyed in AfterXMLLoading) + std::unique_ptr<ScDocShellModificator> m_pModificator; // #109979#; is used to load XML (created in BeforeXMLLoading and destroyed in AfterXMLLoading) css::uno::Reference< ooo::vba::excel::XWorkbook> mxAutomationWorkbookObject; @@ -162,7 +162,7 @@ class SC_DLLPUBLIC ScDocShell final: public SfxObjectShell, public SfxListener SAL_DLLPRIVATE void UseSheetSaveEntries(); - SAL_DLLPRIVATE ScDocFunc *CreateDocFunc(); + SAL_DLLPRIVATE std::unique_ptr<ScDocFunc> CreateDocFunc(); virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override; @@ -299,7 +299,7 @@ public: void DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2 ); ScDBData* GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel ); ScDBData* GetAnonymousDBData(const ScRange& rRange); - ScDBData* GetOldAutoDBRange(); // has to be deleted by caller! + std::unique_ptr<ScDBData> GetOldAutoDBRange(); void CancelAutoDBRange(); // called when dialog is cancelled virtual void ReconnectDdeLink(SfxObjectShell& rServer) override; @@ -414,8 +414,8 @@ public: virtual HiddenInformation GetHiddenInformationState( HiddenInformation nStates ) override; - const ScOptSolverSave* GetSolverSaveData() const { return m_pSolverSaveData; } // may be null - void SetSolverSaveData( const ScOptSolverSave& rData ); + const ScOptSolverSave* GetSolverSaveData() const { return m_pSolverSaveData.get(); } // may be null + void SetSolverSaveData( std::unique_ptr<ScOptSolverSave> pData ); ScSheetSaveData* GetSheetSaveData(); ScFormatSaveData* GetFormatSaveData(); diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx index d3cfa487eb42..66ecf951665e 100644 --- a/sc/source/ui/miscdlgs/optsolver.cxx +++ b/sc/source/ui/miscdlgs/optsolver.cxx @@ -585,10 +585,10 @@ IMPL_LINK( ScOptSolverDlg, BtnHdl, Button*, pBtn, void ) { // Close: write dialog settings to DocShell for subsequent calls ReadConditions(); - ScOptSolverSave aSave( + std::unique_ptr<ScOptSolverSave> pSave( new ScOptSolverSave( m_pEdObjectiveCell->GetText(), m_pRbMax->IsChecked(), m_pRbMin->IsChecked(), m_pRbValue->IsChecked(), - m_pEdTargetValue->GetText(), m_pEdVariableCells->GetText(), maConditions, maEngine, maProperties ); - mpDocShell->SetSolverSaveData( aSave ); + m_pEdTargetValue->GetText(), m_pEdVariableCells->GetText(), maConditions, maEngine, maProperties ) ); + mpDocShell->SetSolverSaveData( std::move(pSave) ); Close(); } else diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx index af029c845660..4a7dbc28a54d 100644 --- a/sc/source/ui/undo/undobase.cxx +++ b/sc/source/ui/undo/undobase.cxx @@ -464,7 +464,7 @@ ScDBFuncUndo::ScDBFuncUndo( ScDocShell* pDocSh, const ScRange& rOriginal ) : ScSimpleUndo( pDocSh ), aOriginalRange( rOriginal ) { - pAutoDBRange = pDocSh->GetOldAutoDBRange(); + pAutoDBRange = pDocSh->GetOldAutoDBRange().release(); } ScDBFuncUndo::~ScDBFuncUndo() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits