From 70c8ff8e5af7d2661b64fb92a158f2860af7766c Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 17 Apr 2020 06:10:23 -0400 Subject: Bug 1377978 - Make nsRange use uint32_t to offset Tag #1375 --- toolkit/components/typeaheadfind/nsTypeAheadFind.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'toolkit') diff --git a/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp b/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp index 53b1ef66d..4690383ab 100644 --- a/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp +++ b/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp @@ -822,7 +822,7 @@ nsTypeAheadFind::GetSearchContainers(nsISupports *aContainer, getter_AddRefs(mStartPointRange), nullptr); } else { - int32_t startOffset; + uint32_t startOffset; nsCOMPtr startNode; if (aFindPrev) { currentSelectionRange->GetStartContainer(getter_AddRefs(startNode)); @@ -860,7 +860,7 @@ nsTypeAheadFind::RangeStartsInsideLink(nsIDOMRange *aRange, nsCOMPtr startNode; nsCOMPtr startContent, origContent; aRange->GetStartContainer(getter_AddRefs(startNode)); - int32_t startOffset; + uint32_t startOffset; aRange->GetStartOffset(&startOffset); startContent = do_QueryInterface(startNode); @@ -880,9 +880,10 @@ nsTypeAheadFind::RangeStartsInsideLink(nsIDOMRange *aRange, const nsTextFragment *textFrag = startContent->GetText(); if (textFrag) { // look for non whitespace character before start offset - for (int32_t index = 0; index < startOffset; index++) { + for (uint32_t index = 0; index < startOffset; index++) { // FIXME: take content language into account when deciding whitespace. - if (!mozilla::dom::IsSpaceCharacter(textFrag->CharAt(index))) { + if (!mozilla::dom::IsSpaceCharacter( + textFrag->CharAt(static_cast(index)))) { *aIsStartingLink = false; // not at start of a node break; @@ -1227,12 +1228,14 @@ nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell, return true; // Don't need it to be on screen, just in rendering tree // Get the next in flow frame that contains the range start - int32_t startRangeOffset, startFrameOffset, endFrameOffset; + int32_t startFrameOffset, endFrameOffset; + uint32_t startRangeOffset; aRange->GetStartOffset(&startRangeOffset); while (true) { frame->GetOffsets(startFrameOffset, endFrameOffset); - if (startRangeOffset < endFrameOffset) + if (static_cast(startRangeOffset) < endFrameOffset) { break; + } nsIFrame *nextContinuationFrame = frame->GetNextContinuation(); if (nextContinuationFrame) -- cgit v1.2.3