Bug 1700051: part 36) Reduce accessibility of `SoftText::mBegin` to `private`. r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D112732
This commit is contained in:
Mirko Brodesser 2021-04-21 07:40:34 +00:00
Родитель 2733f50922
Коммит d514c2e238
2 изменённых файлов: 19 добавлений и 12 удалений

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

@ -239,7 +239,7 @@ nsresult mozInlineSpellWordUtil::SetPositionAndEnd(nsINode* aPositionNode,
aPositionNode = FindNextTextNode(aPositionNode, aPositionOffset, mRootNode);
aPositionOffset = 0;
}
mSoftText.mBegin = NodeOffset(aPositionNode, aPositionOffset);
NodeOffset softBegin = NodeOffset(aPositionNode, aPositionOffset);
if (!IsSpellCheckingTextNode(aEndNode)) {
// End at the start of the first text node after aEndNode/aEndOffset.
@ -248,12 +248,12 @@ nsresult mozInlineSpellWordUtil::SetPositionAndEnd(nsINode* aPositionNode,
}
mSoftText.mEnd = NodeOffset(aEndNode, aEndOffset);
nsresult rv = EnsureWords();
nsresult rv = EnsureWords(std::move(softBegin));
if (NS_FAILED(rv)) {
return rv;
}
int32_t textOffset = MapDOMPositionToSoftTextOffset(mSoftText.mBegin);
int32_t textOffset = MapDOMPositionToSoftTextOffset(mSoftText.GetBegin());
if (textOffset < 0) {
return NS_OK;
}
@ -262,9 +262,9 @@ nsresult mozInlineSpellWordUtil::SetPositionAndEnd(nsINode* aPositionNode,
return NS_OK;
}
nsresult mozInlineSpellWordUtil::EnsureWords() {
nsresult mozInlineSpellWordUtil::EnsureWords(NodeOffset aSoftBegin) {
if (mSoftText.mIsValid) return NS_OK;
mSoftText.AdjustBeginAndBuildText(mRootNode);
mSoftText.AdjustBeginAndBuildText(std::move(aSoftBegin), mRootNode);
mRealWords.Clear();
Result<RealWords, nsresult> realWords = BuildRealWords();
@ -300,10 +300,12 @@ nsresult mozInlineSpellWordUtil::GetRangeForWord(nsINode* aWordNode,
// Set our soft end and start
NodeOffset pt(aWordNode, aWordOffset);
if (!mSoftText.mIsValid || pt != mSoftText.mBegin || pt != mSoftText.mEnd) {
if (!mSoftText.mIsValid || pt != mSoftText.GetBegin() ||
pt != mSoftText.mEnd) {
mSoftText.Invalidate();
mSoftText.mBegin = mSoftText.mEnd = pt;
nsresult rv = EnsureWords();
mSoftText.mEnd = pt;
NodeOffset softBegin = pt;
nsresult rv = EnsureWords(std::move(softBegin));
if (NS_FAILED(rv)) {
return rv;
}
@ -767,9 +769,11 @@ void mozInlineSpellWordUtil::NormalizeWord(nsAString& aWord) {
}
void mozInlineSpellWordUtil::SoftText::AdjustBeginAndBuildText(
const nsINode* aRootNode) {
NodeOffset aBegin, const nsINode* aRootNode) {
MOZ_LOG(sInlineSpellWordUtilLog, LogLevel::Debug, ("%s", __FUNCTION__));
mBegin = std::move(aBegin);
// First we have to work backwards from mBegin to find a text node
// containing a DOM word separator, a non-inline-element
// boundary, or the hard start node. That's where we'll start building the

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

@ -135,22 +135,25 @@ class MOZ_STACK_CLASS mozInlineSpellWordUtil {
};
struct SoftText {
void AdjustBeginAndBuildText(const nsINode* aRootNode);
void AdjustBeginAndBuildText(NodeOffset aBegin, const nsINode* aRootNode);
void Invalidate() { mIsValid = false; }
const NodeOffset& GetBegin() const { return mBegin; }
const nsTArray<DOMTextMapping>& GetDOMMapping() const {
return mDOMMapping;
}
const nsString& GetValue() const { return mValue; }
NodeOffset mBegin = NodeOffset(nullptr, 0);
NodeOffset mEnd = NodeOffset(nullptr, 0);
bool mIsValid = false;
private:
NodeOffset mBegin = NodeOffset(nullptr, 0);
nsTArray<DOMTextMapping> mDOMMapping;
// DOM text covering the soft range, with newlines added at block boundaries
@ -197,7 +200,7 @@ class MOZ_STACK_CLASS mozInlineSpellWordUtil {
RealWords mRealWords;
int32_t mNextWordIndex;
nsresult EnsureWords();
nsresult EnsureWords(NodeOffset aSoftBegin);
int32_t MapDOMPositionToSoftTextOffset(NodeOffset aNodeOffset) const;
// Map an offset into mSoftText.mValue to a DOM position. Note that two DOM