diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-27 10:11:58 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-28 10:12:57 +0200 |
commit | b7239a1271d5af51163b4fcd93608b72db2616a4 (patch) | |
tree | c5e6a6f0fd26b5219a1e9c32809984946833edfd /sc/source/ui/docshell/dbdocimp.cxx | |
parent | 8bcc4a98d78869d6839821b9747602777f00ebaf (diff) |
loplugin:useuniqueptr pass ScDocument by unique_ptr in undo code
Change-Id: Ib05638865a42ad37c3382714e1790c7035ed8ebf
Reviewed-on: https://gerrit.libreoffice.org/59638
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc/source/ui/docshell/dbdocimp.cxx')
-rw-r--r-- | sc/source/ui/docshell/dbdocimp.cxx | 15 |
1 files changed, 7 insertions, 8 deletions
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; i<nColCount; i++) { - ScDatabaseDocUtil::PutData( pImportDoc, nCol, nRow, nTab, + ScDatabaseDocUtil::PutData( pImportDoc.get(), nCol, nRow, nTab, xRow, i+1, pTypeArr[i], pCurrArr[i] ); ++nCol; } @@ -466,11 +466,11 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam, SCCOL nUndoEndCol = std::max( nEndCol, rParam.nCol2 ); // rParam = old end SCROW nUndoEndRow = std::max( nEndRow, rParam.nRow2 ); - ScDocument* pUndoDoc = nullptr; + ScDocumentUniquePtr pUndoDoc; ScDBData* pUndoDBData = nullptr; if ( bRecord ) { - pUndoDoc = new ScDocument( SCDOCMODE_UNDO ); + pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO )); pUndoDoc->InitUndo( &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 ); |