[Libreoffice-commits] .: 2 commits - sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Mon Sep 17 05:57:12 PDT 2012
sc/source/core/tool/rangelst.cxx | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
New commits:
commit 7a182026fce922a9f69e8da76d46e87e7188a4e9
Author: Markus Mohrhard <markus.mohrhard at 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.mohrhard at 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)
{
More information about the Libreoffice-commits
mailing list