| Index: Source/core/rendering/InlineBox.cpp | 
| diff --git a/Source/core/rendering/InlineBox.cpp b/Source/core/rendering/InlineBox.cpp | 
| index 0e1e21ea874aae3efb4de6bf8fbf5d106f0c4351..4a26f6a255de5c76bfd2fbd40c764791a6d11cce 100644 | 
| --- a/Source/core/rendering/InlineBox.cpp | 
| +++ b/Source/core/rendering/InlineBox.cpp | 
| @@ -82,14 +82,12 @@ const char* InlineBox::boxName() const | 
|  | 
| void InlineBox::showTreeForThis() const | 
| { | 
| -    if (m_renderer) | 
| -        m_renderer->showTreeForThis(); | 
| +    renderer().showTreeForThis(); | 
| } | 
|  | 
| void InlineBox::showLineTreeForThis() const | 
| { | 
| -    if (m_renderer) | 
| -        m_renderer->containingBlock()->showLineTreeAndMark(this, "*"); | 
| +    renderer().containingBlock()->showLineTreeAndMark(this, "*"); | 
| } | 
|  | 
| void InlineBox::showLineTreeAndMark(const InlineBox* markedBox1, const char* markedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const RenderObject* obj, int depth) const | 
| @@ -99,7 +97,7 @@ void InlineBox::showLineTreeAndMark(const InlineBox* markedBox1, const char* mar | 
| printedCharacters += fprintf(stderr, "%s", markedLabel1); | 
| if (this == markedBox2) | 
| printedCharacters += fprintf(stderr, "%s", markedLabel2); | 
| -    if (renderer() == obj) | 
| +    if (&renderer() == obj) | 
| printedCharacters += fprintf(stderr, "*"); | 
| for (; printedCharacters < depth * 2; printedCharacters++) | 
| fputc(' ', stderr); | 
| @@ -112,7 +110,7 @@ void InlineBox::showBox(int printedCharacters) const | 
| printedCharacters += fprintf(stderr, "%s\t%p", boxName(), this); | 
| for (; printedCharacters < showTreeCharacterOffset; printedCharacters++) | 
| fputc(' ', stderr); | 
| -    fprintf(stderr, "\t%s %p\n", renderer() ? renderer()->renderName() : "No Renderer", renderer()); | 
| +    fprintf(stderr, "\t%s %p\n", renderer().renderName(), &renderer()); | 
| } | 
| #endif | 
|  | 
| @@ -121,14 +119,14 @@ float InlineBox::logicalHeight() const | 
| if (hasVirtualLogicalHeight()) | 
| return virtualLogicalHeight(); | 
|  | 
| -    if (renderer()->isText()) | 
| -        return m_bitfields.isText() ? renderer()->style(isFirstLineStyle())->fontMetrics().height() : 0; | 
| -    if (renderer()->isBox() && parent()) | 
| -        return isHorizontal() ? toRenderBox(m_renderer)->height() : toRenderBox(m_renderer)->width(); | 
| +    if (renderer().isText()) | 
| +        return m_bitfields.isText() ? renderer().style(isFirstLineStyle())->fontMetrics().height() : 0; | 
| +    if (renderer().isBox() && parent()) | 
| +        return isHorizontal() ? toRenderBox(renderer()).height() : toRenderBox(renderer()).width(); | 
|  | 
| ASSERT(isInlineFlowBox()); | 
| RenderBoxModelObject* flowObject = boxModelObject(); | 
| -    const FontMetrics& fontMetrics = renderer()->style(isFirstLineStyle())->fontMetrics(); | 
| +    const FontMetrics& fontMetrics = renderer().style(isFirstLineStyle())->fontMetrics(); | 
| float result = fontMetrics.height(); | 
| if (parent()) | 
| result += flowObject->borderAndPaddingLogicalHeight(); | 
| @@ -147,12 +145,12 @@ LayoutUnit InlineBox::lineHeight() const | 
|  | 
| int InlineBox::caretMinOffset() const | 
| { | 
| -    return m_renderer->caretMinOffset(); | 
| +    return renderer().caretMinOffset(); | 
| } | 
|  | 
| int InlineBox::caretMaxOffset() const | 
| { | 
| -    return m_renderer->caretMaxOffset(); | 
| +    return renderer().caretMaxOffset(); | 
| } | 
|  | 
| void InlineBox::dirtyLineBoxes() | 
| @@ -164,43 +162,43 @@ void InlineBox::dirtyLineBoxes() | 
|  | 
| void InlineBox::deleteLine() | 
| { | 
| -    if (!m_bitfields.extracted() && m_renderer->isBox()) | 
| -        toRenderBox(m_renderer)->setInlineBoxWrapper(0); | 
| +    if (!m_bitfields.extracted() && renderer().isBox()) | 
| +        toRenderBox(renderer()).setInlineBoxWrapper(0); | 
| destroy(); | 
| } | 
|  | 
| void InlineBox::extractLine() | 
| { | 
| m_bitfields.setExtracted(true); | 
| -    if (m_renderer->isBox()) | 
| -        toRenderBox(m_renderer)->setInlineBoxWrapper(0); | 
| +    if (renderer().isBox()) | 
| +        toRenderBox(renderer()).setInlineBoxWrapper(0); | 
| } | 
|  | 
| void InlineBox::attachLine() | 
| { | 
| m_bitfields.setExtracted(false); | 
| -    if (m_renderer->isBox()) | 
| -        toRenderBox(m_renderer)->setInlineBoxWrapper(this); | 
| +    if (renderer().isBox()) | 
| +        toRenderBox(renderer()).setInlineBoxWrapper(this); | 
| } | 
|  | 
| void InlineBox::adjustPosition(float dx, float dy) | 
| { | 
| m_topLeft.move(dx, dy); | 
|  | 
| -    if (m_renderer->isReplaced()) | 
| -        toRenderBox(m_renderer)->move(dx, dy); | 
| +    if (renderer().isReplaced()) | 
| +        toRenderBox(renderer()).move(dx, dy); | 
| } | 
|  | 
| void InlineBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) | 
| { | 
| -    if (!paintInfo.shouldPaintWithinRoot(renderer()) || (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection)) | 
| +    if (!paintInfo.shouldPaintWithinRoot(&renderer()) || (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection)) | 
| return; | 
|  | 
| LayoutPoint childPoint = paintOffset; | 
| -    if (parent()->renderer()->style()->isFlippedBlocksWritingMode()) // Faster than calling containingBlock(). | 
| -        childPoint = renderer()->containingBlock()->flipForWritingModeForChild(toRenderBox(renderer()), childPoint); | 
| +    if (parent()->renderer().style()->isFlippedBlocksWritingMode()) // Faster than calling containingBlock(). | 
| +        childPoint = renderer().containingBlock()->flipForWritingModeForChild(&toRenderBox(renderer()), childPoint); | 
|  | 
| -    RenderBlock::paintAsInlineBlock(renderer(), paintInfo, childPoint); | 
| +    RenderBlock::paintAsInlineBlock(&renderer(), paintInfo, childPoint); | 
| } | 
|  | 
| bool InlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) | 
| @@ -209,10 +207,10 @@ bool InlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result | 
| // own stacking context.  (See Appendix E.2, section 6.4 on inline block/table elements in the CSS2.1 | 
| // specification.) | 
| LayoutPoint childPoint = accumulatedOffset; | 
| -    if (parent()->renderer()->style()->isFlippedBlocksWritingMode()) // Faster than calling containingBlock(). | 
| -        childPoint = renderer()->containingBlock()->flipForWritingModeForChild(toRenderBox(renderer()), childPoint); | 
| +    if (parent()->renderer().style()->isFlippedBlocksWritingMode()) // Faster than calling containingBlock(). | 
| +        childPoint = renderer().containingBlock()->flipForWritingModeForChild(&toRenderBox(renderer()), childPoint); | 
|  | 
| -    return renderer()->hitTest(request, result, locationInContainer, childPoint); | 
| +    return renderer().hitTest(request, result, locationInContainer, childPoint); | 
| } | 
|  | 
| const RootInlineBox* InlineBox::root() const | 
| @@ -284,13 +282,13 @@ InlineBox* InlineBox::prevLeafChildIgnoringLineBreak() const | 
|  | 
| RenderObject::SelectionState InlineBox::selectionState() | 
| { | 
| -    return renderer()->selectionState(); | 
| +    return renderer().selectionState(); | 
| } | 
|  | 
| bool InlineBox::canAccommodateEllipsis(bool ltr, int blockEdge, int ellipsisWidth) const | 
| { | 
| // Non-replaced elements can always accommodate an ellipsis. | 
| -    if (!m_renderer || !m_renderer->isReplaced()) | 
| +    if (!renderer().isReplaced()) | 
| return true; | 
|  | 
| IntRect boxRect(left(), 0, m_logicalWidth, 10); | 
| @@ -314,41 +312,41 @@ void InlineBox::clearKnownToHaveNoOverflow() | 
|  | 
| FloatPoint InlineBox::locationIncludingFlipping() | 
| { | 
| -    if (!renderer()->style()->isFlippedBlocksWritingMode()) | 
| +    if (!renderer().style()->isFlippedBlocksWritingMode()) | 
| return FloatPoint(x(), y()); | 
| -    RenderBlockFlow* block = root()->block(); | 
| -    if (block->style()->isHorizontalWritingMode()) | 
| -        return FloatPoint(x(), block->height() - height() - y()); | 
| -    else | 
| -        return FloatPoint(block->width() - width() - x(), y()); | 
| +    RenderBlockFlow& block = root()->block(); | 
| +    if (block.style()->isHorizontalWritingMode()) | 
| +        return FloatPoint(x(), block.height() - height() - y()); | 
| + | 
| +    return FloatPoint(block.width() - width() - x(), y()); | 
| } | 
|  | 
| void InlineBox::flipForWritingMode(FloatRect& rect) | 
| { | 
| -    if (!renderer()->style()->isFlippedBlocksWritingMode()) | 
| +    if (!renderer().style()->isFlippedBlocksWritingMode()) | 
| return; | 
| -    root()->block()->flipForWritingMode(rect); | 
| +    root()->block().flipForWritingMode(rect); | 
| } | 
|  | 
| FloatPoint InlineBox::flipForWritingMode(const FloatPoint& point) | 
| { | 
| -    if (!renderer()->style()->isFlippedBlocksWritingMode()) | 
| +    if (!renderer().style()->isFlippedBlocksWritingMode()) | 
| return point; | 
| -    return root()->block()->flipForWritingMode(point); | 
| +    return root()->block().flipForWritingMode(point); | 
| } | 
|  | 
| void InlineBox::flipForWritingMode(LayoutRect& rect) | 
| { | 
| -    if (!renderer()->style()->isFlippedBlocksWritingMode()) | 
| +    if (!renderer().style()->isFlippedBlocksWritingMode()) | 
| return; | 
| -    root()->block()->flipForWritingMode(rect); | 
| +    root()->block().flipForWritingMode(rect); | 
| } | 
|  | 
| LayoutPoint InlineBox::flipForWritingMode(const LayoutPoint& point) | 
| { | 
| -    if (!renderer()->style()->isFlippedBlocksWritingMode()) | 
| +    if (!renderer().style()->isFlippedBlocksWritingMode()) | 
| return point; | 
| -    return root()->block()->flipForWritingMode(point); | 
| +    return root()->block().flipForWritingMode(point); | 
| } | 
|  | 
| } // namespace WebCore | 
|  |