summaryrefslogtreecommitdiff
path: root/sc/source/ui/docshell/dbdocimp.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-08-27 10:11:58 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-08-28 10:12:57 +0200
commitb7239a1271d5af51163b4fcd93608b72db2616a4 (patch)
treec5e6a6f0fd26b5219a1e9c32809984946833edfd /sc/source/ui/docshell/dbdocimp.cxx
parent8bcc4a98d78869d6839821b9747602777f00ebaf (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.cxx15
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 );