summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-06-21 09:50:37 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-06-25 15:20:18 +0200
commit537ff805fc4b27e4d553c57f9b9457dc9eebb191 (patch)
treefde5c4666bbc81bfac1d55231b3a8e07d1ed5631 /sc
parent5400d1736480d9380f0ed1eeaa546d75889e6653 (diff)
loplugin:useuniqueptr in ScDocument
Change-Id: I117424b6d28d4cc6cc6d7146f9df861a8075a791 Reviewed-on: https://gerrit.libreoffice.org/56320 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/document.hxx30
-rw-r--r--sc/source/core/data/documen2.cxx6
-rw-r--r--sc/source/core/data/documen3.cxx16
-rw-r--r--sc/source/core/data/documen8.cxx10
-rw-r--r--sc/source/core/data/documen9.cxx7
-rw-r--r--sc/source/core/data/document.cxx13
-rw-r--r--sc/source/core/data/documentimport.cxx2
-rw-r--r--sc/source/core/data/table7.cxx2
-rw-r--r--sc/source/filter/excel/impop.cxx3
-rw-r--r--sc/source/filter/oox/formulabuffer.cxx3
-rw-r--r--sc/source/ui/docshell/docsh.cxx6
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx5
-rw-r--r--sc/source/ui/docshell/tablink.cxx4
-rw-r--r--sc/source/ui/undo/refundo.cxx3
-rw-r--r--sc/source/ui/view/viewfun3.cxx6
15 files changed, 61 insertions, 55 deletions
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 86079dd4c7b1..49cd2a7b80fc 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -366,7 +366,7 @@ private:
SfxObjectShell* mpShell;
VclPtr<SfxPrinter> mpPrinter;
VclPtr<VirtualDevice> mpVirtualDevice_100th_mm;
- ScDrawLayer* mpDrawLayer; // SdrModel
+ std::unique_ptr<ScDrawLayer> mpDrawLayer; // SdrModel
rtl::Reference<XColorList> pColorList;
ScValidationDataList* pValidationList; // validity
SvNumberFormatterIndexTable* pFormatExchangeList; // for application of number formats
@@ -382,7 +382,7 @@ private:
ScFormulaCell* pFormulaTrack; // BroadcastTrack (start)
ScFormulaCell* pEOFormulaTrack; // BroadcastTrack (end), last cell
std::unique_ptr<ScBroadcastAreaSlotMachine> pBASM; // BroadcastAreas
- ScChartListenerCollection* pChartListenerCollection;
+ std::unique_ptr<ScChartListenerCollection> pChartListenerCollection;
std::unique_ptr<SvMemoryStream> pClipData;
std::unique_ptr<ScDetOpList> pDetOpList;
std::unique_ptr<ScChangeTrack> pChangeTrack;
@@ -414,13 +414,13 @@ private:
ScRangePairListRef xColNameRanges;
ScRangePairListRef xRowNameRanges;
- ScViewOptions* pViewOptions; // view options
- ScDocOptions* pDocOptions; // document options
- ScExtDocOptions* pExtDocOptions; // for import etc.
+ std::unique_ptr<ScViewOptions> pViewOptions; // view options
+ std::unique_ptr<ScDocOptions> pDocOptions; // document options
+ std::unique_ptr<ScExtDocOptions> pExtDocOptions; // for import etc.
std::unique_ptr<ScClipOptions> mpClipOptions; // clipboard options
std::unique_ptr<ScConsolidateParam> pConsolidateDlgData;
- ScAutoNameCache* pAutoNameCache; // for automatic name lookup during CompileXML
+ std::unique_ptr<ScAutoNameCache> pAutoNameCache; // for automatic name lookup during CompileXML
std::unique_ptr<SfxItemSet> pPreviewFont; // convert to std::unique_ptr or whatever
ScStyleSheet* pPreviewCellStyle;
@@ -591,11 +591,11 @@ public:
SC_DLLPUBLIC void SetViewOptions( const ScViewOptions& rOpt );
void SetPrintOptions();
- ScExtDocOptions* GetExtDocOptions() { return pExtDocOptions; }
- SC_DLLPUBLIC void SetExtDocOptions( ScExtDocOptions* pNewOptions );
+ ScExtDocOptions* GetExtDocOptions() { return pExtDocOptions.get(); }
+ SC_DLLPUBLIC void SetExtDocOptions( std::unique_ptr<ScExtDocOptions> pNewOptions );
ScClipOptions* GetClipOptions() { return mpClipOptions.get(); }
- void SetClipOptions(const ScClipOptions& rClipOptions);
+ void SetClipOptions(std::unique_ptr<ScClipOptions> pClipOptions);
SC_DLLPUBLIC void GetLanguage( LanguageType& rLatin, LanguageType& rCjk, LanguageType& rCtl ) const;
void SetLanguage( LanguageType eLatin, LanguageType eCjk, LanguageType eCtl );
@@ -992,8 +992,8 @@ public:
SfxBindings* GetViewBindings();
SfxObjectShell* GetDocumentShell() const { return mpShell; }
- SC_DLLPUBLIC ScDrawLayer* GetDrawLayer() { return mpDrawLayer; }
- SC_DLLPUBLIC const ScDrawLayer* GetDrawLayer() const { return mpDrawLayer; }
+ SC_DLLPUBLIC ScDrawLayer* GetDrawLayer() { return mpDrawLayer.get(); }
+ SC_DLLPUBLIC const ScDrawLayer* GetDrawLayer() const { return mpDrawLayer.get(); }
SfxBroadcaster* GetDrawBroadcaster(); // to avoid header
void BeginDrawUndo();
@@ -1269,7 +1269,7 @@ public:
*/
bool CompileErrorCells(FormulaError nErrCode);
- ScAutoNameCache* GetAutoNameCache() { return pAutoNameCache; }
+ ScAutoNameCache* GetAutoNameCache() { return pAutoNameCache.get(); }
void SetPreviewFont( std::unique_ptr<SfxItemSet> pFontSet );
SfxItemSet* GetPreviewFont() { return pPreviewFont.get(); }
SfxItemSet* GetPreviewFont( SCCOL nCol, SCROW nRow, SCTAB nTab );
@@ -1278,7 +1278,7 @@ public:
ScStyleSheet* GetPreviewCellStyle() { return pPreviewCellStyle; }
ScStyleSheet* GetPreviewCellStyle( SCCOL nCol, SCROW nRow, SCTAB nTab );
void SetPreviewCellStyle( ScStyleSheet* pStyle ) { pPreviewCellStyle = pStyle; }
- SC_DLLPUBLIC void SetAutoNameCache( ScAutoNameCache* pCache );
+ SC_DLLPUBLIC void SetAutoNameCache( std::unique_ptr<ScAutoNameCache> pCache );
/** Creates a ScLookupCache cache for the range if it
doesn't already exist. */
@@ -2045,8 +2045,8 @@ public:
bool GetNoListening() const { return bNoListening; }
ScBroadcastAreaSlotMachine* GetBASM() const { return pBASM.get(); }
- SC_DLLPUBLIC ScChartListenerCollection* GetChartListenerCollection() const { return pChartListenerCollection;}
- void SetChartListenerCollection( ScChartListenerCollection*,
+ SC_DLLPUBLIC ScChartListenerCollection* GetChartListenerCollection() const { return pChartListenerCollection.get(); }
+ void SetChartListenerCollection( std::unique_ptr<ScChartListenerCollection>,
bool bSetChartRangeLists );
void UpdateChart( const OUString& rName );
void RestoreChartListener( const OUString& rName );
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 88c9b972c912..9682dff38dc0 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -18,6 +18,8 @@
*/
#include <scitems.hxx>
+#include <scextopt.hxx>
+#include <autonamecache.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/editeng.hxx>
@@ -234,7 +236,7 @@ ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) :
mxPoolHelper = new ScPoolHelper( this );
pBASM.reset( new ScBroadcastAreaSlotMachine( this ) );
- pChartListenerCollection = new ScChartListenerCollection( this );
+ pChartListenerCollection.reset( new ScChartListenerCollection( this ) );
pRefreshTimerControl.reset( new ScRefreshTimerControl );
}
else
@@ -383,7 +385,7 @@ ScDocument::~ScDocument()
ScAddInAsync::RemoveDocument( this );
ScAddInListener::RemoveDocument( this );
- DELETEZ( pChartListenerCollection); // before pBASM because of potential Listener!
+ pChartListenerCollection.reset(); // before pBASM because of potential Listener!
DELETEZ(maNonThreaded.pLookupCacheMapImpl); // before pBASM because of listeners
DELETEZ(maThreadSpecific.pLookupCacheMapImpl);
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 21d11f94d95c..91a67ebd583a 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -404,18 +404,17 @@ void ScDocument::StopTemporaryChartLock()
}
void ScDocument::SetChartListenerCollection(
- ScChartListenerCollection* pNewChartListenerCollection,
+ std::unique_ptr<ScChartListenerCollection> pNewChartListenerCollection,
bool bSetChartRangeLists )
{
- ScChartListenerCollection* pOld = pChartListenerCollection;
- pChartListenerCollection = pNewChartListenerCollection;
+ std::unique_ptr<ScChartListenerCollection> pOld = std::move(pChartListenerCollection);
+ pChartListenerCollection = std::move(pNewChartListenerCollection);
if ( pChartListenerCollection )
{
if ( pOld )
pChartListenerCollection->SetDiffDirty( *pOld, bSetChartRangeLists );
pChartListenerCollection->StartAllListeners();
}
- delete pOld;
}
void ScDocument::SetScenario( SCTAB nTab, bool bFlag )
@@ -1983,15 +1982,14 @@ tools::Rectangle ScDocument::GetMMRect( SCCOL nStartCol, SCROW nStartRow, SCCOL
return aRect;
}
-void ScDocument::SetExtDocOptions( ScExtDocOptions* pNewOptions )
+void ScDocument::SetExtDocOptions( std::unique_ptr<ScExtDocOptions> pNewOptions )
{
- delete pExtDocOptions;
- pExtDocOptions = pNewOptions;
+ pExtDocOptions = std::move(pNewOptions);
}
-void ScDocument::SetClipOptions(const ScClipOptions& rClipOptions)
+void ScDocument::SetClipOptions(std::unique_ptr<ScClipOptions> pClipOptions)
{
- mpClipOptions = o3tl::make_unique<ScClipOptions>(rClipOptions);
+ mpClipOptions = std::move(pClipOptions);
}
void ScDocument::DoMergeContents( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow,
diff --git a/sc/source/core/data/documen8.cxx b/sc/source/core/data/documen8.cxx
index 7d5542173b96..32a1c2cd97cb 100644
--- a/sc/source/core/data/documen8.cxx
+++ b/sc/source/core/data/documen8.cxx
@@ -106,15 +106,15 @@ inline sal_uInt16 getScaleValue(SfxStyleSheetBase& rStyle, sal_uInt16 nWhich)
void ScDocument::ImplCreateOptions()
{
- pDocOptions = new ScDocOptions();
- pViewOptions = new ScViewOptions();
+ pDocOptions.reset( new ScDocOptions() );
+ pViewOptions.reset( new ScViewOptions() );
}
void ScDocument::ImplDeleteOptions()
{
- delete pDocOptions;
- delete pViewOptions;
- delete pExtDocOptions;
+ pDocOptions.reset();
+ pViewOptions.reset();
+ pExtDocOptions.reset();
}
SfxPrinter* ScDocument::GetPrinter(bool bCreateIfNotExist)
diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
index 5433142df41a..d342e49c6bbe 100644
--- a/sc/source/core/data/documen9.cxx
+++ b/sc/source/core/data/documen9.cxx
@@ -62,7 +62,7 @@ using namespace ::com::sun::star;
SfxBroadcaster* ScDocument::GetDrawBroadcaster()
{
- return mpDrawLayer;
+ return mpDrawLayer.get();
}
void ScDocument::BeginDrawUndo()
@@ -117,7 +117,7 @@ void ScDocument::InitDrawLayer( SfxObjectShell* pDocShell )
OUString aName;
if ( mpShell && !mpShell->IsLoading() ) // don't call GetTitle while loading
aName = mpShell->GetTitle();
- mpDrawLayer = new ScDrawLayer( this, aName );
+ mpDrawLayer.reset(new ScDrawLayer( this, aName ));
sfx2::LinkManager* pMgr = GetDocLinkManager().getLinkManager(bAutoCalc);
if (pMgr)
@@ -250,8 +250,7 @@ void ScDocument::DeleteDrawLayer()
pLocalPool->SetSecondaryPool(nullptr);
}
}
- delete mpDrawLayer;
- mpDrawLayer = nullptr;
+ mpDrawLayer.reset();
}
bool ScDocument::DrawGetPrintArea( ScRange& rRange, bool bSetHor, bool bSetVer ) const
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 58777dc19e43..32f1669e97d1 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -2381,7 +2381,7 @@ void ScDocument::TransposeClip( ScDocument* pTransClip, InsertDeleteFlags nFlags
tools::Rectangle aDestRect = pTransClip->GetMMRect( 0, 0,
static_cast<SCCOL>(aClipRange.aEnd.Row() - aClipRange.aStart.Row()),
static_cast<SCROW>(aClipRange.aEnd.Col() - aClipRange.aStart.Col()), i );
- pTransClip->mpDrawLayer->CopyFromClip( mpDrawLayer, i, aSourceRect, ScAddress(0,0,i), aDestRect );
+ pTransClip->mpDrawLayer->CopyFromClip( mpDrawLayer.get(), i, aSourceRect, ScAddress(0,0,i), aDestRect );
}
}
@@ -2649,7 +2649,7 @@ void ScDocument::CopyBlockFromClip(
tools::Rectangle aSourceRect = rCxt.getClipDoc()->GetMMRect(
nCol1-nDx, nRow1-nDy, nCol2-nDx, nRow2-nDy, nClipTab );
tools::Rectangle aDestRect = GetMMRect( nCol1, nRow1, nCol2, nRow2, i );
- mpDrawLayer->CopyFromClip(rCxt.getClipDoc()->mpDrawLayer, nClipTab, aSourceRect,
+ mpDrawLayer->CopyFromClip(rCxt.getClipDoc()->mpDrawLayer.get(), nClipTab, aSourceRect,
ScAddress( nCol1, nRow1, i ), aDestRect );
}
}
@@ -3984,7 +3984,7 @@ void ScDocument::CompileXML()
// set AutoNameCache to speed up automatic name lookup
OSL_ENSURE( !pAutoNameCache, "AutoNameCache already set" );
- pAutoNameCache = new ScAutoNameCache( this );
+ pAutoNameCache.reset( new ScAutoNameCache( this ) );
if (pRangeName)
pRangeName->CompileUnresolvedXML(aCxt);
@@ -3998,7 +3998,7 @@ void ScDocument::CompileXML()
);
StartAllListeners();
- DELETEZ( pAutoNameCache ); // valid only during CompileXML, where cell contents don't change
+ pAutoNameCache.reset(); // valid only during CompileXML, where cell contents don't change
if ( pValidationList )
{
@@ -6731,10 +6731,9 @@ bool ScDocument::ContainsNotesInRange( const ScRangeList& rRangeList ) const
return false;
}
-void ScDocument::SetAutoNameCache( ScAutoNameCache* pCache )
+void ScDocument::SetAutoNameCache( std::unique_ptr<ScAutoNameCache> pCache )
{
- delete pAutoNameCache;
- pAutoNameCache = pCache;
+ pAutoNameCache = std::move(pCache);
}
thread_local ScDocumentThreadSpecific ScDocument::maThreadSpecific;
diff --git a/sc/source/core/data/documentimport.cxx b/sc/source/core/data/documentimport.cxx
index 55aaadae1ce7..d5788a0e2d03 100644
--- a/sc/source/core/data/documentimport.cxx
+++ b/sc/source/core/data/documentimport.cxx
@@ -173,7 +173,7 @@ void ScDocumentImport::setSheetName(SCTAB nTab, const OUString& rName)
void ScDocumentImport::setOriginDate(sal_uInt16 nYear, sal_uInt16 nMonth, sal_uInt16 nDay)
{
if (!mpImpl->mrDoc.pDocOptions)
- mpImpl->mrDoc.pDocOptions = new ScDocOptions;
+ mpImpl->mrDoc.pDocOptions.reset( new ScDocOptions );
mpImpl->mrDoc.pDocOptions->SetDate(nDay, nMonth, nYear);
}
diff --git a/sc/source/core/data/table7.cxx b/sc/source/core/data/table7.cxx
index aab7c47cf522..9bf03be16002 100644
--- a/sc/source/core/data/table7.cxx
+++ b/sc/source/core/data/table7.cxx
@@ -158,7 +158,7 @@ void ScTable::CopyOneCellFromClip(
rSrcStartPos.Col(), rSrcStartPos.Row(), rSrcEndPos.Col(), rSrcEndPos.Row(),
rSrcStartPos.Tab());
tools::Rectangle aDestRect = GetDoc().GetMMRect(nCol1, nRow1, nCol2, nRow2, nTab);
- pDrawLayer->CopyFromClip(rCxt.getClipDoc()->mpDrawLayer, rSrcStartPos.Tab(),
+ pDrawLayer->CopyFromClip(rCxt.getClipDoc()->mpDrawLayer.get(), rSrcStartPos.Tab(),
aSourceRect, ScAddress(nCol1, nRow1, nTab), aDestRect);
}
}
diff --git a/sc/source/filter/excel/impop.cxx b/sc/source/filter/excel/impop.cxx
index d01fe225c805..26e6ac10a0b5 100644
--- a/sc/source/filter/excel/impop.cxx
+++ b/sc/source/filter/excel/impop.cxx
@@ -81,6 +81,7 @@
#include <excimp8.hxx>
#include <excform.hxx>
#include <documentimport.hxx>
+#include <o3tl/make_unique.hxx>
#if defined(_WIN32)
#include <math.h>
@@ -1310,7 +1311,7 @@ void ImportExcel::PostDocLoad()
GetExtDocOptions().SetChanged( true );
// root data owns the extended document options -> create a new object
- GetDoc().SetExtDocOptions( new ScExtDocOptions( GetExtDocOptions() ) );
+ GetDoc().SetExtDocOptions( o3tl::make_unique<ScExtDocOptions>( GetExtDocOptions() ) );
const SCTAB nLast = pD->GetTableCount();
const ScRange* p;
diff --git a/sc/source/filter/oox/formulabuffer.cxx b/sc/source/filter/oox/formulabuffer.cxx
index 0e5a5f796be8..87529dcad0d0 100644
--- a/sc/source/filter/oox/formulabuffer.cxx
+++ b/sc/source/filter/oox/formulabuffer.cxx
@@ -23,6 +23,7 @@
#include <tokenstringcontext.hxx>
#include <oox/token/tokens.hxx>
#include <svl/sharedstringpool.hxx>
+#include <o3tl/make_unique.hxx>
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sheet;
@@ -343,7 +344,7 @@ void FormulaBuffer::finalizeImport()
ISegmentProgressBarRef xFormulaBar = getProgressBar().createSegment( getProgressBar().getFreeLength() );
ScDocumentImport& rDoc = getDocImport();
- rDoc.getDoc().SetAutoNameCache(new ScAutoNameCache(&rDoc.getDoc()));
+ rDoc.getDoc().SetAutoNameCache(o3tl::make_unique<ScAutoNameCache>(&rDoc.getDoc()));
ScExternalRefManager::ApiGuard aExtRefGuard(&rDoc.getDoc());
SCTAB nTabCount = rDoc.getDoc().GetTableCount();
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 48a3c806a20e..b0c10dd0989b 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -134,6 +134,7 @@
#include <datastream.hxx>
#include <documentlinkmgr.hxx>
#include <refupdatecontext.hxx>
+#include <o3tl/make_unique.hxx>
#include <memory>
#include <vector>
@@ -2380,7 +2381,10 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed )
{
ScExtDocOptions* pExtDocOpt = m_aDocument.GetExtDocOptions();
if( !pExtDocOpt )
- m_aDocument.SetExtDocOptions( pExtDocOpt = new ScExtDocOptions );
+ {
+ m_aDocument.SetExtDocOptions( o3tl::make_unique<ScExtDocOptions>() );
+ pExtDocOpt = m_aDocument.GetExtDocOptions();
+ }
pViewShell->GetViewData().WriteExtOptions( *pExtDocOpt );
/* #i104990# If the imported document contains a medium
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 8c39abc9cad4..55334a317871 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -60,6 +60,7 @@
#include <columnspanset.hxx>
#include <column.hxx>
#include <com/sun/star/document/MacroExecMode.hpp>
+#include <o3tl/make_unique.hxx>
#include <memory>
#include <algorithm>
@@ -2543,8 +2544,8 @@ SfxObjectShellRef ScExternalRefManager::loadSrcDocument(sal_uInt16 nFileId, OUSt
ScExtDocOptions* pExtOptNew = rSrcDoc.GetExtDocOptions();
if (!pExtOptNew)
{
- pExtOptNew = new ScExtDocOptions;
- rSrcDoc.SetExtDocOptions(pExtOptNew);
+ rSrcDoc.SetExtDocOptions(o3tl::make_unique<ScExtDocOptions>());
+ pExtOptNew = rSrcDoc.GetExtDocOptions();
}
pExtOptNew->GetDocSettings().mnLinkCnt = nLinkCount + 1;
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index 2a6448b1944a..527aefedb0fb 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -536,8 +536,8 @@ ScDocumentLoader::ScDocumentLoader(const OUString& rFileName,
ScExtDocOptions* pExtDocOpt = rDoc.GetExtDocOptions();
if( !pExtDocOpt )
{
- pExtDocOpt = new ScExtDocOptions;
- rDoc.SetExtDocOptions( pExtDocOpt );
+ rDoc.SetExtDocOptions( o3tl::make_unique<ScExtDocOptions>() );
+ pExtDocOpt = rDoc.GetExtDocOptions();
}
pExtDocOpt->GetDocSettings().mnLinkCnt = nRekCnt;
diff --git a/sc/source/ui/undo/refundo.cxx b/sc/source/ui/undo/refundo.cxx
index 4aeb94dc36b1..d2a6c5cb2779 100644
--- a/sc/source/ui/undo/refundo.cxx
+++ b/sc/source/ui/undo/refundo.cxx
@@ -33,6 +33,7 @@
#include <unoreflist.hxx>
#include <scopetools.hxx>
#include <refupdatecontext.hxx>
+#include <o3tl/make_unique.hxx>
ScRefUndoData::ScRefUndoData( const ScDocument* pDoc ) :
pDBCollection(nullptr),
@@ -166,7 +167,7 @@ void ScRefUndoData::DoUndo( ScDocument* pDoc, bool bUndoRefFirst )
// bUndoRefFirst is bSetChartRangeLists
if ( pChartListenerCollection )
- pDoc->SetChartListenerCollection( new ScChartListenerCollection(
+ pDoc->SetChartListenerCollection( o3tl::make_unique<ScChartListenerCollection>(
*pChartListenerCollection ), bUndoRefFirst );
if (pDBCollection || pRangeName)
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 2a9824b24a32..cb71f1642ad3 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -231,9 +231,9 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b
// Copy document properties from pObjectShell to pClipDoc (to its clip options, as it has no object shell).
uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier(pObjectShell->GetModel(), uno::UNO_QUERY);
uno::Reference<util::XCloneable> xCloneable(xDocumentPropertiesSupplier->getDocumentProperties(), uno::UNO_QUERY);
- ScClipOptions aOptions;
- aOptions.m_xDocumentProperties.set(xCloneable->createClone(), uno::UNO_QUERY);
- pClipDoc->SetClipOptions(aOptions);
+ std::unique_ptr<ScClipOptions> pOptions(new ScClipOptions);
+ pOptions->m_xDocumentProperties.set(xCloneable->createClone(), uno::UNO_QUERY);
+ pClipDoc->SetClipOptions(std::move(pOptions));
}
pDoc->CopyToClip( aClipParam, pClipDoc, &rMark, false, bIncludeObjects );