sc/source/core/tool/rangelst.cxx | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-)
New commits: commit 7a182026fce922a9f69e8da76d46e87e7188a4e9 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 17 14:41:19 2012 +0200 don't use delete with remove_if, related fdo#54498 Change-Id: I508ceb8dfe13fbfe54b4262d26bd215462c90c40 diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx index 2f90f39..49b6162 100644 --- a/sc/source/core/tool/rangelst.cxx +++ b/sc/source/core/tool/rangelst.cxx @@ -705,9 +705,16 @@ void ScRangeList::DeleteArea( SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2 ) { ScRange aRange( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); - iterator itrDel = std::remove_if(maRanges.begin(), maRanges.end(), FindRangeIn<ScRange>(aRange)); - for_each(itrDel, maRanges.end(), ScDeleteObjectByPtr<ScRange>()); - maRanges.erase(itrDel, maRanges.end()); + for(size_t i = 0; i < maRanges.size();) + { + if(FindRangeIn(aRange)(maRanges[i])) + { + ScRange* pRange = Remove(i); + delete pRange; + } + else + ++i; + } std::vector<ScRange> aNewRanges; commit e6bca122176cdb2b6e822fc933f159dc3e3c8d46 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 17 14:37:30 2012 +0200 don't delete ranges in ScRangeList::UpdateReference, fdo#54498 Change-Id: Id6a1f9f514c8221e5ca79e1eaafe69916fc1d1bd diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx index de87e6c..2f90f39 100644 --- a/sc/source/core/tool/rangelst.cxx +++ b/sc/source/core/tool/rangelst.cxx @@ -417,14 +417,6 @@ bool ScRangeList::UpdateReference( SCTAB nTab2; rWhere.GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); - // delete all entries that are fully deleted - if( eUpdateRefMode == URM_INSDEL && (nDx < 0 || nDy < 0) ) - { - vector<ScRange*>::iterator itr = std::remove_if(maRanges.begin(), maRanges.end(), FindDeletedRange(nDx, nDy)); - for_each(itr, maRanges.end(), ScDeleteObjectByPtr<ScRange>()); - maRanges.erase(itr, maRanges.end()); - } - vector<ScRange*>::iterator itr = maRanges.begin(), itrEnd = maRanges.end(); for (; itr != itrEnd; ++itr) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits