[Libreoffice-commits] core.git: sc/source
Noel Grandin
noel.grandin at collabora.co.uk
Thu Jun 28 06:29:55 UTC 2018
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.grandin at 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.grandin at 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()
More information about the Libreoffice-commits
mailing list