X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Source%2FWebCore%2Fediting%2FVisibleUnits.cpp;h=82fec1e7adb08c3c2251caa7285ffb58b96b701c;hp=b04247b38187470f8210f2e7778cf8273c639bf2;hb=673e28a39c6852641b77b9db992b1fb50fa44433;hpb=681891c812ebe8e0eb364d888cd78c46d3e179a6;ds=inline diff --git a/Source/WebCore/editing/VisibleUnits.cpp b/Source/WebCore/editing/VisibleUnits.cpp index b04247b38187..82fec1e7adb0 100644 --- a/Source/WebCore/editing/VisibleUnits.cpp +++ b/Source/WebCore/editing/VisibleUnits.cpp @@ -521,7 +521,7 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch if (ec) return VisiblePosition(); - SimplifiedBackwardsTextIterator it(searchRange.get()); + SimplifiedBackwardsTextIterator it(*searchRange); unsigned next = 0; bool needMoreContext = false; while (!it.atEnd()) { @@ -548,15 +548,15 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch } if (!next) - return VisiblePosition(it.atEnd() ? it.range()->startPosition() : pos, DOWNSTREAM); + return VisiblePosition(it.atEnd() ? searchRange->startPosition() : pos, DOWNSTREAM); - Node* node = it.range()->startContainer(); + Node* node = it.atEnd() ? searchRange->startContainer() : it.range()->startContainer(); if ((node->isTextNode() && static_cast(next) <= node->maxCharacterOffset()) || (node->renderer() && node->renderer()->isBR() && !next)) // The next variable contains a usable index into a text node return VisiblePosition(createLegacyEditingPosition(node, next), DOWNSTREAM); // Use the character iterator to translate the next value into a DOM position. - BackwardsCharacterIterator charIt(searchRange.get()); + BackwardsCharacterIterator charIt(*searchRange); charIt.advance(string.size() - suffixLength - next); // FIXME: charIt can get out of shadow host. return VisiblePosition(charIt.range()->endPosition(), DOWNSTREAM); @@ -579,7 +579,7 @@ static VisiblePosition nextBoundary(const VisiblePosition& c, BoundarySearchFunc if (requiresContextForWordBoundary(c.characterAfter())) { RefPtr backwardsScanRange(boundaryDocument.createRange()); backwardsScanRange->setEnd(start.deprecatedNode(), start.deprecatedEditingOffset(), IGNORE_EXCEPTION); - SimplifiedBackwardsTextIterator backwardsIterator(backwardsScanRange.get()); + SimplifiedBackwardsTextIterator backwardsIterator(*backwardsScanRange); while (!backwardsIterator.atEnd()) { StringView text = backwardsIterator.text(); int i = startOfLastWordBoundaryContext(text); @@ -621,10 +621,10 @@ static VisiblePosition nextBoundary(const VisiblePosition& c, BoundarySearchFunc } if (it.atEnd() && next == string.size()) - pos = it.range()->startPosition(); + pos = searchRange->endPosition(); else if (next > prefixLength) { // Use the character iterator to translate the next value into a DOM position. - CharacterIterator charIt(searchRange.get(), TextIteratorEmitsCharactersBetweenAllVisiblePositions); + CharacterIterator charIt(*searchRange, TextIteratorEmitsCharactersBetweenAllVisiblePositions); charIt.advance(next - prefixLength - 1); RefPtr characterRange = charIt.range(); pos = characterRange->endPosition();