Index: Source/core/rendering/RenderText.cpp |
diff --git a/Source/core/rendering/RenderText.cpp b/Source/core/rendering/RenderText.cpp |
index 7d6096c4a29127e77ff85aee1757053231d3976a..090e7fff223e936859db32787132807f0a13c9c1 100644 |
--- a/Source/core/rendering/RenderText.cpp |
+++ b/Source/core/rendering/RenderText.cpp |
@@ -213,7 +213,7 @@ void RenderText::removeAndDestroyTextBoxes() |
if (!documentBeingDestroyed()) { |
if (firstTextBox()) { |
if (isBR()) { |
- RootInlineBox* next = firstTextBox()->root()->nextRootBox(); |
+ RootInlineBox* next = firstTextBox()->root().nextRootBox(); |
if (next) |
next->markDirty(); |
} |
@@ -392,7 +392,7 @@ static IntRect ellipsisRectForBox(InlineTextBox* box, unsigned startPos, unsigne |
return IntRect(); |
IntRect rect; |
- if (EllipsisBox* ellipsis = box->root()->ellipsisBox()) { |
+ if (EllipsisBox* ellipsis = box->root().ellipsisBox()) { |
int ellipsisStartPosition = max<int>(startPos - box->start(), 0); |
int ellipsisEndPosition = min<int>(endPos - box->start(), box->len()); |
@@ -627,12 +627,12 @@ PositionWithAffinity RenderText::positionForPoint(const LayoutPoint& point) |
if (box->isLineBreak() && !box->prevLeafChild() && box->nextLeafChild() && !box->nextLeafChild()->isLineBreak()) |
box = box->nextTextBox(); |
- RootInlineBox* rootBox = box->root(); |
- LayoutUnit top = min(rootBox->selectionTop(), rootBox->lineTop()); |
+ RootInlineBox& rootBox = box->root(); |
+ LayoutUnit top = min(rootBox.selectionTop(), rootBox.lineTop()); |
if (pointBlockDirection > top || (!blocksAreFlipped && pointBlockDirection == top)) { |
- LayoutUnit bottom = rootBox->selectionBottom(); |
- if (rootBox->nextRootBox()) |
- bottom = min(bottom, rootBox->nextRootBox()->lineTop()); |
+ LayoutUnit bottom = rootBox.selectionBottom(); |
+ if (rootBox.nextRootBox()) |
+ bottom = min(bottom, rootBox.nextRootBox()->lineTop()); |
if (pointBlockDirection < bottom || (blocksAreFlipped && pointBlockDirection == bottom)) { |
ShouldAffinityBeDownstream shouldAffinityBeDownstream; |
@@ -662,8 +662,8 @@ LayoutRect RenderText::localCaretRect(InlineBox* inlineBox, int caretOffset, Lay |
InlineTextBox* box = toInlineTextBox(inlineBox); |
- int height = box->root()->selectionHeight(); |
- int top = box->root()->selectionTop(); |
+ int height = box->root().selectionHeight(); |
+ int top = box->root().selectionTop(); |
// Go ahead and round left to snap it to the nearest pixel. |
float left = box->positionForOffset(caretOffset); |
@@ -675,13 +675,13 @@ LayoutRect RenderText::localCaretRect(InlineBox* inlineBox, int caretOffset, Lay |
left = roundf(left); |
- float rootLeft = box->root()->logicalLeft(); |
- float rootRight = box->root()->logicalRight(); |
+ float rootLeft = box->root().logicalLeft(); |
+ float rootRight = box->root().logicalRight(); |
// FIXME: should we use the width of the root inline box or the |
// width of the containing block for this? |
if (extraWidthToEndOfLine) |
- *extraWidthToEndOfLine = (box->root()->logicalWidth() + rootLeft) - (left + 1); |
+ *extraWidthToEndOfLine = (box->root().logicalWidth() + rootLeft) - (left + 1); |
RenderBlock* cb = containingBlock(); |
RenderStyle* cbStyle = cb->style(); |
@@ -1191,16 +1191,12 @@ void RenderText::setSelectionState(SelectionState state) |
for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) { |
if (box->isSelected(startPos, endPos)) { |
- RootInlineBox* root = box->root(); |
- if (root) |
- root->setHasSelectedChildren(true); |
+ box->root().setHasSelectedChildren(true); |
} |
} |
} else { |
for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) { |
- RootInlineBox* root = box->root(); |
- if (root) |
- root->setHasSelectedChildren(state == SelectionInside); |
+ box->root().setHasSelectedChildren(state == SelectionInside); |
} |
} |
} |
@@ -1236,7 +1232,7 @@ void RenderText::setTextWithOffset(PassRefPtr<StringImpl> text, unsigned offset, |
// Text run is entirely after the affected range. |
if (curr->start() > end) { |
curr->offsetRun(delta); |
- RootInlineBox* root = curr->root(); |
+ RootInlineBox* root = &curr->root(); |
if (!firstRootBox) { |
firstRootBox = root; |
// The affected area was in between two runs. Go ahead and mark the root box of |
@@ -1270,7 +1266,7 @@ void RenderText::setTextWithOffset(PassRefPtr<StringImpl> text, unsigned offset, |
firstRootBox = prev; |
} else if (lastTextBox()) { |
ASSERT(!lastRootBox); |
- firstRootBox = lastTextBox()->root(); |
+ firstRootBox = &lastTextBox()->root(); |
firstRootBox->markDirty(); |
dirtiedLines = true; |
} |