From 484dd3d384035e5d39a4e5c17fc0a955b82b9d91 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Tue, 27 May 2008 19:13:11 +0000 Subject: Fixed error in RangeSet, caused compile failure on Solaris. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@660647 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/RangeSet.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/qpid/RangeSet.h b/cpp/src/qpid/RangeSet.h index a8849cf9b8..af3b2223cd 100644 --- a/cpp/src/qpid/RangeSet.h +++ b/cpp/src/qpid/RangeSet.h @@ -63,6 +63,7 @@ class Range { bool operator==(const Range& x) { return begin_ == x.begin_ && end_== x.end_; } bool operator<(const T& t) const { return end_ < t; } + bool operator<(const Range& r) const { return end_ < r.begin_; } /** touching ranges can be merged into a single range. */ bool touching(const Range& r) const { @@ -204,21 +205,21 @@ std::ostream& operator<<(std::ostream& o, const RangeSet& rs) { template bool RangeSet::contains(const T& t) const { typename Ranges::const_iterator i = - std::lower_bound(ranges.begin(), ranges.end(), t); + std::lower_bound(ranges.begin(), ranges.end(), Range(t)); return i != ranges.end() && i->contains(t); } template bool RangeSet::contains(const Range& r) const { typename Ranges::const_iterator i = - std::lower_bound(ranges.begin(), ranges.end(), r.begin()); + std::lower_bound(ranges.begin(), ranges.end(), r); return i != ranges.end() && i->contains(r); } template void RangeSet::addRange(const Range& r) { if (r.empty()) return; typename Ranges::iterator i = - std::lower_bound(ranges.begin(), ranges.end(), r.begin()); + std::lower_bound(ranges.begin(), ranges.end(), r); if (i == ranges.end() || !i->touching(r)) ranges.insert(i, r); else { @@ -241,7 +242,7 @@ template void RangeSet::addSet(const RangeSet& s) { template void RangeSet::removeRange(const Range& r) { if (r.empty()) return; typename Ranges::iterator i,j; - i = std::lower_bound(ranges.begin(), ranges.end(), r.begin()); + i = std::lower_bound(ranges.begin(), ranges.end(), r); if (i == ranges.end() || i->begin() >= r.end()) return; // Outside of set if (*i == r) // Erase i @@ -304,7 +305,7 @@ template bool RangeSet::iterator::equal(const iterator& i) const { template Range RangeSet::rangeContaining(const T& t) const { typename Ranges::const_iterator i = - std::lower_bound(ranges.begin(), ranges.end(), t); + std::lower_bound(ranges.begin(), ranges.end(), Range(t)); return (i != ranges.end() && i->contains(t)) ? *i : Range(t,t); } -- cgit v1.2.1