From b7239a1271d5af51163b4fcd93608b72db2616a4 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Mon, 27 Aug 2018 10:11:58 +0200 Subject: loplugin:useuniqueptr pass ScDocument by unique_ptr in undo code Change-Id: Ib05638865a42ad37c3382714e1790c7035ed8ebf Reviewed-on: https://gerrit.libreoffice.org/59638 Reviewed-by: Noel Grandin Tested-by: Noel Grandin --- sc/source/ui/docshell/dbdocimp.cxx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'sc/source/ui/docshell/dbdocimp.cxx') diff --git a/sc/source/ui/docshell/dbdocimp.cxx b/sc/source/ui/docshell/dbdocimp.cxx index 7fa81368ba04..b7362c0966b0 100644 --- a/sc/source/ui/docshell/dbdocimp.cxx +++ b/sc/source/ui/docshell/dbdocimp.cxx @@ -181,7 +181,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam, xResultSet.set((*pDescriptor)[svx::DataAccessDescriptorProperty::Cursor], uno::UNO_QUERY); // ImportDoc - also used for Redo - ScDocument* pImportDoc = new ScDocument( SCDOCMODE_UNDO ); + ScDocumentUniquePtr pImportDoc(new ScDocument( SCDOCMODE_UNDO )); pImportDoc->InitUndo( &rDoc, nTab, nTab ); // get data from database into import document @@ -330,7 +330,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam, nCol = rParam.nCol1; for (long i=0; iInitUndo( &rDoc, nTab, nTab ); pUndoDBData = new ScDBData( *pDBData ); @@ -574,8 +574,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam, if (bRecord) { - ScDocument* pRedoDoc = pImportDoc; - pImportDoc = nullptr; + ScDocumentUniquePtr pRedoDoc = std::move(pImportDoc); if (nFormulaCols > 0) // include filled formulas for redo rDoc.CopyToDocument(rParam.nCol1, rParam.nRow1, nTab, @@ -588,7 +587,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam, new ScUndoImportData( &rDocShell, nTab, rParam, nUndoEndCol, nUndoEndRow, nFormulaCols, - pUndoDoc, pRedoDoc, pUndoDBData, pRedoDBData ) ); + std::move(pUndoDoc), std::move(pRedoDoc), pUndoDBData, pRedoDBData ) ); } sc::SetFormulaDirtyContext aCxt; @@ -623,7 +622,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam, xInfoBox->run(); } - delete pImportDoc; + pImportDoc.reset(); if (bSuccess && pChangeTrack) pChangeTrack->AppendInsert ( aChangedRange ); -- cgit