summaryrefslogtreecommitdiff
path: root/sc/source/ui/docshell/dbdocimp.cxx
diff options
context:
space:
mode:
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 );