sc/inc/document.hxx | 30 +++++++++++++++--------------- sc/source/core/data/documen2.cxx | 6 ++++-- sc/source/core/data/documen3.cxx | 16 +++++++--------- sc/source/core/data/documen8.cxx | 10 +++++----- sc/source/core/data/documen9.cxx | 7 +++---- sc/source/core/data/document.cxx | 13 ++++++------- sc/source/core/data/documentimport.cxx | 2 +- sc/source/core/data/table7.cxx | 2 +- sc/source/filter/excel/impop.cxx | 3 ++- sc/source/filter/oox/formulabuffer.cxx | 3 ++- sc/source/ui/docshell/docsh.cxx | 6 +++++- sc/source/ui/docshell/externalrefmgr.cxx | 5 +++-- sc/source/ui/docshell/tablink.cxx | 4 ++-- sc/source/ui/undo/refundo.cxx | 3 ++- sc/source/ui/view/viewfun3.cxx | 6 +++--- 15 files changed, 61 insertions(+), 55 deletions(-)
New commits: commit 537ff805fc4b27e4d553c57f9b9457dc9eebb191 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Thu Jun 21 09:50:37 2018 +0200 loplugin:useuniqueptr in ScDocument Change-Id: I117424b6d28d4cc6cc6d7146f9df861a8075a791 Reviewed-on: https://gerrit.libreoffice.org/56320 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> 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 ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits