Index: Source/core/editing/VisibleUnits.cpp |
diff --git a/Source/core/editing/VisibleUnits.cpp b/Source/core/editing/VisibleUnits.cpp |
index a2b04e8cc7319d67d37dd927fe77539d97adeb8e..f51ec7cd29846afe54bceeba7153ff8c16fc739d 100644 |
--- a/Source/core/editing/VisibleUnits.cpp |
+++ b/Source/core/editing/VisibleUnits.cpp |
@@ -514,9 +514,9 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch |
} |
if (!next) |
- return VisiblePosition(it.atEnd() ? it.range()->startPosition() : pos, DOWNSTREAM); |
+ return VisiblePosition(it.atEnd() ? it.startPosition() : pos, DOWNSTREAM); |
- Node* node = it.range()->startContainer(); |
+ Node* node = it.startContainer(); |
if ((node->isTextNode() && static_cast<int>(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); |
@@ -525,7 +525,7 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch |
BackwardsCharacterIterator charIt(searchRange.get()); |
charIt.advance(string.size() - suffixLength - next); |
// FIXME: charIt can get out of shadow host. |
- return VisiblePosition(charIt.range()->endPosition(), DOWNSTREAM); |
+ return VisiblePosition(charIt.endPosition(), DOWNSTREAM); |
} |
static VisiblePosition nextBoundary(const VisiblePosition& c, BoundarySearchFunction searchFunction) |
@@ -590,20 +590,19 @@ static VisiblePosition nextBoundary(const VisiblePosition& c, BoundarySearchFunc |
} |
if (it.atEnd() && next == string.size()) { |
- pos = it.range()->startPosition(); |
+ pos = it.startPosition(); |
} else if (next != invalidOffset && next != prefixLength) { |
// Use the character iterator to translate the next value into a DOM position. |
CharacterIterator charIt(searchRange.get(), TextIteratorEmitsCharactersBetweenAllVisiblePositions); |
charIt.advance(next - prefixLength - 1); |
- RefPtrWillBeRawPtr<Range> characterRange = charIt.range(); |
- pos = characterRange->endPosition(); |
+ pos = charIt.endPosition(); |
if (charIt.characterAt(0) == '\n') { |
// FIXME: workaround for collapsed range (where only start position is correct) emitted for some emitted newlines (see rdar://5192593) |
VisiblePosition visPos = VisiblePosition(pos); |
- if (visPos == VisiblePosition(characterRange->startPosition())) { |
+ if (visPos == VisiblePosition(charIt.startPosition())) { |
charIt.advance(1); |
- pos = charIt.range()->startPosition(); |
+ pos = charIt.startPosition(); |
} |
} |
} |