| Index: Source/core/editing/VisibleUnits.cpp
|
| diff --git a/Source/core/editing/VisibleUnits.cpp b/Source/core/editing/VisibleUnits.cpp
|
| index 5b889d78c5548aa42520fded0d76280dfc430105..1068c8cacefc50523d243891b7de309dca591c9e 100644
|
| --- a/Source/core/editing/VisibleUnits.cpp
|
| +++ b/Source/core/editing/VisibleUnits.cpp
|
| @@ -216,7 +216,7 @@ static const InlineTextBox* logicallyPreviousBox(const VisiblePosition& visibleP
|
| return previousBox;
|
|
|
| while (1) {
|
| - Node* startNode = startBox->renderer() ? startBox->renderer()->nonPseudoNode() : 0;
|
| + Node* startNode = startBox->renderer().nonPseudoNode();
|
| if (!startNode)
|
| break;
|
|
|
| @@ -257,7 +257,7 @@ static const InlineTextBox* logicallyNextBox(const VisiblePosition& visiblePosit
|
| return nextBox;
|
|
|
| while (1) {
|
| - Node* startNode = startBox->renderer() ? startBox->renderer()->nonPseudoNode() : 0;
|
| + Node* startNode =startBox->renderer().nonPseudoNode();
|
| if (!startNode)
|
| break;
|
|
|
| @@ -295,10 +295,10 @@ static TextBreakIterator* wordBreakIteratorForMinOffsetBoundary(const VisiblePos
|
| string.clear();
|
| if (previousBox) {
|
| previousBoxLength = previousBox->len();
|
| - previousBox->textRenderer()->text().appendTo(string, previousBox->start(), previousBoxLength);
|
| + previousBox->textRenderer().text().appendTo(string, previousBox->start(), previousBoxLength);
|
| len += previousBoxLength;
|
| }
|
| - textBox->textRenderer()->text().appendTo(string, textBox->start(), textBox->len());
|
| + textBox->textRenderer().text().appendTo(string, textBox->start(), textBox->len());
|
| len += textBox->len();
|
|
|
| return wordBreakIterator(string.data(), len);
|
| @@ -314,10 +314,10 @@ static TextBreakIterator* wordBreakIteratorForMaxOffsetBoundary(const VisiblePos
|
|
|
| int len = 0;
|
| string.clear();
|
| - textBox->textRenderer()->text().appendTo(string, textBox->start(), textBox->len());
|
| + textBox->textRenderer().text().appendTo(string, textBox->start(), textBox->len());
|
| len += textBox->len();
|
| if (nextBox) {
|
| - nextBox->textRenderer()->text().appendTo(string, nextBox->start(), nextBox->len());
|
| + nextBox->textRenderer().text().appendTo(string, nextBox->start(), nextBox->len());
|
| len += nextBox->len();
|
| }
|
|
|
| @@ -384,7 +384,7 @@ static VisiblePosition visualWordPosition(const VisiblePosition& visiblePosition
|
| else if (offsetInBox == box->caretMaxOffset())
|
| iter = wordBreakIteratorForMaxOffsetBoundary(visiblePosition, textBox, nextBoxInDifferentBlock, string, leafBoxes);
|
| else if (movingIntoNewBox) {
|
| - iter = wordBreakIterator(textBox->textRenderer()->text(), textBox->start(), textBox->len());
|
| + iter = wordBreakIterator(textBox->textRenderer().text(), textBox->start(), textBox->len());
|
| previouslyVisitedBox = box;
|
| }
|
|
|
| @@ -737,11 +737,7 @@ static VisiblePosition startPositionForLine(const VisiblePosition& c, LineEndpoi
|
| if (!startBox)
|
| return VisiblePosition();
|
|
|
| - RenderObject* startRenderer = startBox->renderer();
|
| - if (!startRenderer)
|
| - return VisiblePosition();
|
| -
|
| - startNode = startRenderer->nonPseudoNode();
|
| + startNode = startBox->renderer().nonPseudoNode();
|
| if (startNode)
|
| break;
|
|
|
| @@ -808,11 +804,7 @@ static VisiblePosition endPositionForLine(const VisiblePosition& c, LineEndpoint
|
| if (!endBox)
|
| return VisiblePosition();
|
|
|
| - RenderObject* endRenderer = endBox->renderer();
|
| - if (!endRenderer)
|
| - return VisiblePosition();
|
| -
|
| - endNode = endRenderer->nonPseudoNode();
|
| + endNode = endBox->renderer().nonPseudoNode();
|
| if (endNode)
|
| break;
|
|
|
| @@ -907,12 +899,12 @@ bool isEndOfLine(const VisiblePosition &p)
|
| static inline IntPoint absoluteLineDirectionPointToLocalPointInBlock(RootInlineBox* root, int lineDirectionPoint)
|
| {
|
| ASSERT(root);
|
| - RenderBlockFlow* containingBlock = root->block();
|
| - FloatPoint absoluteBlockPoint = containingBlock->localToAbsolute(FloatPoint());
|
| - if (containingBlock->hasOverflowClip())
|
| - absoluteBlockPoint -= containingBlock->scrolledContentOffset();
|
| + RenderBlockFlow& containingBlock = root->block();
|
| + FloatPoint absoluteBlockPoint = containingBlock.localToAbsolute(FloatPoint());
|
| + if (containingBlock.hasOverflowClip())
|
| + absoluteBlockPoint -= containingBlock.scrolledContentOffset();
|
|
|
| - if (root->block()->isHorizontalWritingMode())
|
| + if (root->block().isHorizontalWritingMode())
|
| return IntPoint(lineDirectionPoint - absoluteBlockPoint.x(), root->blockDirectionPointInLine());
|
|
|
| return IntPoint(root->blockDirectionPointInLine(), lineDirectionPoint - absoluteBlockPoint.y());
|
| @@ -957,11 +949,11 @@ VisiblePosition previousLinePosition(const VisiblePosition &visiblePosition, int
|
| if (root) {
|
| // FIXME: Can be wrong for multi-column layout and with transforms.
|
| IntPoint pointInLine = absoluteLineDirectionPointToLocalPointInBlock(root, lineDirectionPoint);
|
| - RenderObject* renderer = root->closestLeafChildForPoint(pointInLine, isEditablePosition(p))->renderer();
|
| - Node* node = renderer->node();
|
| + RenderObject& renderer = root->closestLeafChildForPoint(pointInLine, isEditablePosition(p))->renderer();
|
| + Node* node = renderer.node();
|
| if (node && editingIgnoresContent(node))
|
| return VisiblePosition(positionInParentBeforeNode(node));
|
| - return VisiblePosition(renderer->positionForPoint(pointInLine));
|
| + return VisiblePosition(renderer.positionForPoint(pointInLine));
|
| }
|
|
|
| // Could not find a previous line. This means we must already be on the first line.
|
| @@ -1015,11 +1007,11 @@ VisiblePosition nextLinePosition(const VisiblePosition &visiblePosition, int lin
|
| if (root) {
|
| // FIXME: Can be wrong for multi-column layout and with transforms.
|
| IntPoint pointInLine = absoluteLineDirectionPointToLocalPointInBlock(root, lineDirectionPoint);
|
| - RenderObject* renderer = root->closestLeafChildForPoint(pointInLine, isEditablePosition(p))->renderer();
|
| - Node* node = renderer->node();
|
| + RenderObject& renderer = root->closestLeafChildForPoint(pointInLine, isEditablePosition(p))->renderer();
|
| + Node* node = renderer.node();
|
| if (node && editingIgnoresContent(node))
|
| return VisiblePosition(positionInParentBeforeNode(node));
|
| - return VisiblePosition(renderer->positionForPoint(pointInLine));
|
| + return VisiblePosition(renderer.positionForPoint(pointInLine));
|
| }
|
|
|
| // Could not find a next line. This means we must already be on the last line.
|
|
|