зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
b15995b5d5
Коммит
e25dbd58f9
|
@ -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 {
|
||||
|
|
Загрузка…
Ссылка в новой задаче