зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1184043: P1. Ignore empty interval in intervalset. r=mattwoodrow
Add IntersectsStrict method.
This commit is contained in:
Родитель
d05bc1e9af
Коммит
7aa2dd9036
|
@ -157,6 +157,11 @@ public:
|
|||
(aOther.mStart - aOther.mFuzz < mEnd + mFuzz);
|
||||
}
|
||||
|
||||
bool IntersectsStrict(const SelfType& aOther) const
|
||||
{
|
||||
return mStart < aOther.mEnd && aOther.mStart < mEnd;
|
||||
}
|
||||
|
||||
// Same as Intersects, but including the boundaries.
|
||||
bool Touches(const SelfType& aOther) const
|
||||
{
|
||||
|
@ -308,14 +313,18 @@ public:
|
|||
SelfType& operator= (const ElemType& aInterval)
|
||||
{
|
||||
mIntervals.Clear();
|
||||
mIntervals.AppendElement(aInterval);
|
||||
if (!aInterval.IsEmpty()) {
|
||||
mIntervals.AppendElement(aInterval);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
SelfType& operator= (ElemType&& aInterval)
|
||||
{
|
||||
mIntervals.Clear();
|
||||
mIntervals.AppendElement(Move(aInterval));
|
||||
if (!aInterval.IsEmpty()) {
|
||||
mIntervals.AppendElement(Move(aInterval));
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -463,7 +472,7 @@ public:
|
|||
const ContainerType& other = aOther.mIntervals;
|
||||
IndexType i = 0, j = 0;
|
||||
for (; i < mIntervals.Length() && j < other.Length();) {
|
||||
if (mIntervals[i].Intersects(other[j])) {
|
||||
if (mIntervals[i].IntersectsStrict(other[j])) {
|
||||
intersection.AppendElement(mIntervals[i].Intersection(other[j]));
|
||||
}
|
||||
if (mIntervals[i].mEnd < other[j].mEnd) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче