sc/source/core/data/drwlayer.cxx | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-)
New commits: commit 2e5635122b9c59b2f67cd4949f5e259cff2993d5 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Fri Jul 23 16:55:04 2021 +0200 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Tue Aug 10 19:32:45 2021 +0200 Use vector instead of unique_ptr Change-Id: Iea1fb26d9e176283a96d6f0d18dae5b58e55602e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119432 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120222 Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index 27d00144a52d..5b70046e4448 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1550,7 +1550,6 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, if (!nObjCount) return; - size_t nDelCount = 0; tools::Rectangle aDelRect = pDoc->GetMMRect( nCol1, nRow1, nCol2, nRow2, nTab ); tools::Rectangle aDelCircle = pDoc->GetMMRect( nCol1, nRow1, nCol2, nRow2, nTab ); aDelCircle.AdjustLeft(-250); @@ -1558,7 +1557,8 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, aDelCircle.AdjustTop(-70); aDelCircle.AdjustBottom(70); - std::unique_ptr<SdrObject*[]> ppObj(new SdrObject*[nObjCount]); + std::vector<SdrObject*> ppObj; + ppObj.reserve(nObjCount); SdrObjListIter aIter( pPage, SdrIterMode::Flat ); SdrObject* pObject = aIter.Next(); @@ -1574,7 +1574,7 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, { aObjRect = pObject->GetLogicRect(); if(aDelCircle.IsInside(aObjRect)) - ppObj[nDelCount++] = pObject; + ppObj.push_back(pObject); } else { @@ -1585,10 +1585,10 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, { ScAnchorType aAnchorType = ScDrawLayer::GetAnchorType(*pObject); if (aAnchorType == SCA_CELL || aAnchorType == SCA_CELL_RESIZE) - ppObj[nDelCount++] = pObject; + ppObj.push_back(pObject); } else - ppObj[nDelCount++] = pObject; + ppObj.push_back(pObject); } } } @@ -1597,11 +1597,11 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, } if (bRecording) - for (size_t i=1; i<=nDelCount; ++i) - AddCalcUndo( std::make_unique<SdrUndoRemoveObj>( *ppObj[nDelCount-i] ) ); + for (auto p : ppObj) + AddCalcUndo(std::make_unique<SdrUndoRemoveObj>(*p)); - for (size_t i=1; i<=nDelCount; ++i) - pPage->RemoveObject( ppObj[nDelCount-i]->GetOrdNum() ); + for (auto p : ppObj) + pPage->RemoveObject(p->GetOrdNum()); } void ScDrawLayer::DeleteObjectsInSelection( const ScMarkData& rMark ) @@ -1629,13 +1629,13 @@ void ScDrawLayer::DeleteObjectsInSelection( const ScMarkData& rMark ) const size_t nObjCount = pPage->GetObjCount(); if (nObjCount) { - size_t nDelCount = 0; // Rectangle around the whole selection tools::Rectangle aMarkBound = pDoc->GetMMRect( aMarkRange.aStart.Col(), aMarkRange.aStart.Row(), aMarkRange.aEnd.Col(), aMarkRange.aEnd.Row(), nTab ); - std::unique_ptr<SdrObject*[]> ppObj(new SdrObject*[nObjCount]); + std::vector<SdrObject*> ppObj; + ppObj.reserve(nObjCount); SdrObjListIter aIter( pPage, SdrIterMode::Flat ); SdrObject* pObject = aIter.Next(); @@ -1657,7 +1657,7 @@ void ScDrawLayer::DeleteObjectsInSelection( const ScMarkData& rMark ) pObjData->maStart.Row())); if (bObjectInMarkArea || bObjectAnchoredToMarkedCell) { - ppObj[nDelCount++] = pObject; + ppObj.push_back(pObject); } } @@ -1667,11 +1667,11 @@ void ScDrawLayer::DeleteObjectsInSelection( const ScMarkData& rMark ) // Delete objects (backwards) if (bRecording) - for (size_t i=1; i<=nDelCount; ++i) - AddCalcUndo( std::make_unique<SdrUndoRemoveObj>( *ppObj[nDelCount-i] ) ); + for (auto p : ppObj) + AddCalcUndo(std::make_unique<SdrUndoRemoveObj>(*p)); - for (size_t i=1; i<=nDelCount; ++i) - pPage->RemoveObject( ppObj[nDelCount-i]->GetOrdNum() ); + for (auto p : ppObj) + pPage->RemoveObject(p->GetOrdNum()); } } else