summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2012-11-08 16:09:11 -0500
committerTor Lillqvist <tml@iki.fi>2012-11-09 06:33:10 +0000
commitc23a44e1de0faad6328ed0ece7247da3ae24b6cd (patch)
treede20c97722150d565c9f129c76234b4eec00c589
parent28000074f7c25f252a900276a671caf52d0f6812 (diff)
fdo#54898: Test equality by order index (integer) which is more stable.
At the point where std::unique is called, we can use order indices to determine whether the two items are equal. This should be more stable than using CaseInsEqual() to assess equality. Change-Id: I88310fc7beede19fb1c629b9b7e3cb9a069b2b23 Reviewed-on: https://gerrit.libreoffice.org/1013 Reviewed-by: Tor Lillqvist <tml@iki.fi> Tested-by: Tor Lillqvist <tml@iki.fi>
-rw-r--r--sc/source/core/data/dpcache.cxx6
1 files changed, 3 insertions, 3 deletions
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index 44af01167428..611328256820 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -279,11 +279,11 @@ struct LessByDataIndex : std::binary_function<Bucket, Bucket, bool>
}
};
-struct EqualByValue : std::binary_function<Bucket, Bucket, bool>
+struct EqualByOrderIndex : std::binary_function<Bucket, Bucket, bool>
{
bool operator() (const Bucket& left, const Bucket& right) const
{
- return left.maValue.IsCaseInsEqual(right.maValue);
+ return left.mnOrderIndex == right.mnOrderIndex;
}
};
@@ -359,7 +359,7 @@ void processBuckets(std::vector<Bucket>& aBuckets, ScDPCache::Field& rField)
// Unique by value.
std::vector<Bucket>::iterator itUniqueEnd =
- std::unique(aBuckets.begin(), aBuckets.end(), EqualByValue());
+ std::unique(aBuckets.begin(), aBuckets.end(), EqualByOrderIndex());
// Copy the unique values into items.
std::vector<Bucket>::iterator itBeg = aBuckets.begin();