Bug 1587433: part 7.1) Adapt callers of `RangeBoundaryBase::Offset()`. r=smaug

Calls around `nsContentUtils::ComparePoints` will be cleaned-up in a
separate commit.

Differential Revision: https://phabricator.services.mozilla.com/D54458

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Mirko Brodesser 2019-12-16 11:31:30 +00:00
Родитель b15995b5d5
Коммит e25dbd58f9
3 изменённых файлов: 19 добавлений и 9 удалений

Просмотреть файл

@ -107,7 +107,10 @@ nsresult AbstractRange::SetStartAndEndInternal(
// XXX: Offsets - handle this more efficiently.
// If the end offset is less than the start offset, this should be
// collapsed at the end offset.
if (aStartBoundary.Offset() > aEndBoundary.Offset()) {
if (*aStartBoundary.Offset(
RangeBoundaryBase<SPT, SRT>::OffsetFilter::kValidOffsets) >
*aEndBoundary.Offset(
RangeBoundaryBase<EPT, ERT>::OffsetFilter::kValidOffsets)) {
aRange->DoSetRange(aEndBoundary, aEndBoundary, newStartRoot);
} else {
aRange->DoSetRange(aStartBoundary, aEndBoundary, newStartRoot);

Просмотреть файл

@ -50,17 +50,21 @@ class AbstractRange : public nsISupports, public nsWrapperCache {
nsINode* GetStartContainer() const { return mStart.Container(); }
nsINode* GetEndContainer() const { return mEnd.Container(); }
// FYI: Returns 0 if it's not positioned.
uint32_t StartOffset() const {
// FYI: Returns 0 if it's not positioned.
return static_cast<uint32_t>(mStart.Offset());
return static_cast<uint32_t>(
*mStart.Offset(RangeBoundary::OffsetFilter::kValidOrInvalidOffsets));
}
// FYI: Returns 0 if it's not positioned.
uint32_t EndOffset() const {
// FYI: Returns 0 if it's not positioned.
return static_cast<uint32_t>(mEnd.Offset());
return static_cast<uint32_t>(
*mEnd.Offset(RangeBoundary::OffsetFilter::kValidOrInvalidOffsets));
}
bool Collapsed() const {
return !mIsPositioned || (mStart.Container() == mEnd.Container() &&
mStart.Offset() == mEnd.Offset());
StartOffset() == EndOffset());
}
nsINode* GetParentObject() const { return mOwner; }

Просмотреть файл

@ -100,10 +100,12 @@ class RangeBoundaryBase {
return nullptr;
}
if (!mRef) {
MOZ_ASSERT(Offset() == 0, "invalid RangeBoundary");
MOZ_ASSERT(*Offset(OffsetFilter::kValidOrInvalidOffsets) == 0,
"invalid RangeBoundary");
return mParent->GetFirstChild();
}
MOZ_ASSERT(mParent->GetChildAt_Deprecated(Offset()) ==
MOZ_ASSERT(mParent->GetChildAt_Deprecated(
*Offset(OffsetFilter::kValidOrInvalidOffsets)) ==
mRef->GetNextSibling());
return mRef->GetNextSibling();
}
@ -204,7 +206,8 @@ class RangeBoundaryBase {
if (Ref()) {
return Ref()->GetParentNode() == Container();
}
return Offset() <= Container()->Length();
return *Offset(OffsetFilter::kValidOrInvalidOffsets) <=
Container()->Length();
}
bool IsStartOfContainer() const {