Index: Source/core/rendering/svg/SVGRootInlineBox.cpp |
diff --git a/Source/core/rendering/svg/SVGRootInlineBox.cpp b/Source/core/rendering/svg/SVGRootInlineBox.cpp |
index 6fe6f19b66470d69685e7ce5703f48f07311f1e0..d33a3dd0c2be705eb38524e251997227a1878663 100644 |
--- a/Source/core/rendering/svg/SVGRootInlineBox.cpp |
+++ b/Source/core/rendering/svg/SVGRootInlineBox.cpp |
@@ -38,10 +38,7 @@ void SVGRootInlineBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffse |
ASSERT(paintInfo.phase == PaintPhaseForeground || paintInfo.phase == PaintPhaseSelection); |
ASSERT(!paintInfo.context->paintingDisabled()); |
- RenderObject* boxRenderer = renderer(); |
- ASSERT(boxRenderer); |
- |
- bool isPrinting = renderer()->document().printing(); |
+ bool isPrinting = renderer().document().printing(); |
bool hasSelection = !isPrinting && selectionState() != RenderObject::SelectionNone; |
PaintInfo childPaintInfo(paintInfo); |
@@ -54,7 +51,7 @@ void SVGRootInlineBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffse |
} |
} |
- SVGRenderingContext renderingContext(boxRenderer, paintInfo, SVGRenderingContext::SaveGraphicsContext); |
+ SVGRenderingContext renderingContext(&renderer(), paintInfo, SVGRenderingContext::SaveGraphicsContext); |
if (renderingContext.isRenderingPrepared()) { |
for (InlineBox* child = firstChild(); child; child = child->nextOnLine()) |
child->paint(paintInfo, paintOffset, 0, 0); |
@@ -71,14 +68,13 @@ void SVGRootInlineBox::markDirty(bool dirty) |
void SVGRootInlineBox::computePerCharacterLayoutInformation() |
{ |
- RenderSVGText* textRoot = toRenderSVGText(block()); |
- ASSERT(textRoot); |
+ RenderSVGText& textRoot = toRenderSVGText(block()); |
- Vector<SVGTextLayoutAttributes*>& layoutAttributes = textRoot->layoutAttributes(); |
+ Vector<SVGTextLayoutAttributes*>& layoutAttributes = textRoot.layoutAttributes(); |
if (layoutAttributes.isEmpty()) |
return; |
- if (textRoot->needsReordering()) |
+ if (textRoot.needsReordering()) |
reorderValueLists(layoutAttributes); |
// Perform SVG text layout phase two (see SVGTextLayoutEngine for details). |
@@ -99,12 +95,11 @@ void SVGRootInlineBox::layoutCharactersInTextBoxes(InlineFlowBox* start, SVGText |
{ |
for (InlineBox* child = start->firstChild(); child; child = child->nextOnLine()) { |
if (child->isSVGInlineTextBox()) { |
- ASSERT(child->renderer()); |
- ASSERT(child->renderer()->isSVGInlineText()); |
+ ASSERT(child->renderer().isSVGInlineText()); |
characterLayout.layoutInlineTextBox(toSVGInlineTextBox(child)); |
} else { |
// Skip generated content. |
- Node* node = child->renderer()->node(); |
+ Node* node = child->renderer().node(); |
if (!node) |
continue; |
@@ -116,7 +111,7 @@ void SVGRootInlineBox::layoutCharactersInTextBoxes(InlineFlowBox* start, SVGText |
SVGTextLayoutEngine lineLayout(characterLayout.layoutAttributes()); |
layoutCharactersInTextBoxes(flowBox, lineLayout); |
- characterLayout.beginTextPathLayout(child->renderer(), lineLayout); |
+ characterLayout.beginTextPathLayout(&child->renderer(), lineLayout); |
} |
layoutCharactersInTextBoxes(flowBox, characterLayout); |
@@ -132,8 +127,7 @@ void SVGRootInlineBox::layoutChildBoxes(InlineFlowBox* start, FloatRect* childRe |
for (InlineBox* child = start->firstChild(); child; child = child->nextOnLine()) { |
FloatRect boxRect; |
if (child->isSVGInlineTextBox()) { |
- ASSERT(child->renderer()); |
- ASSERT(child->renderer()->isSVGInlineText()); |
+ ASSERT(child->renderer().isSVGInlineText()); |
SVGInlineTextBox* textBox = toSVGInlineTextBox(child); |
boxRect = textBox->calculateBoundaries(); |
@@ -143,7 +137,7 @@ void SVGRootInlineBox::layoutChildBoxes(InlineFlowBox* start, FloatRect* childRe |
textBox->setLogicalHeight(boxRect.height()); |
} else { |
// Skip generated content. |
- if (!child->renderer()->node()) |
+ if (!child->renderer().node()) |
continue; |
SVGInlineFlowBox* flowBox = toSVGInlineFlowBox(child); |
@@ -162,18 +156,17 @@ void SVGRootInlineBox::layoutChildBoxes(InlineFlowBox* start, FloatRect* childRe |
void SVGRootInlineBox::layoutRootBox(const FloatRect& childRect) |
{ |
- RenderBlockFlow* parentBlock = block(); |
- ASSERT(parentBlock); |
+ RenderBlockFlow& parentBlock = block(); |
// Finally, assign the root block position, now that all content is laid out. |
LayoutRect boundingRect = enclosingLayoutRect(childRect); |
- parentBlock->setLocation(boundingRect.location()); |
- parentBlock->setSize(boundingRect.size()); |
+ parentBlock.setLocation(boundingRect.location()); |
+ parentBlock.setSize(boundingRect.size()); |
// Position all children relative to the parent block. |
for (InlineBox* child = firstChild(); child; child = child->nextOnLine()) { |
// Skip generated content. |
- if (!child->renderer()->node()) |
+ if (!child->renderer().node()) |
continue; |
child->adjustPosition(-childRect.x(), -childRect.y()); |
} |
@@ -268,12 +261,12 @@ static inline void reverseInlineBoxRangeAndValueListsIfNeeded(void* userData, Ve |
// Reordering is only necessary for BiDi text that is _absolutely_ positioned. |
if (firstTextBox->len() == 1 && firstTextBox->len() == lastTextBox->len()) { |
- RenderSVGInlineText* firstContext = toRenderSVGInlineText(firstTextBox->textRenderer()); |
- RenderSVGInlineText* lastContext = toRenderSVGInlineText(lastTextBox->textRenderer()); |
+ RenderSVGInlineText& firstContext = toRenderSVGInlineText(firstTextBox->textRenderer()); |
+ RenderSVGInlineText& lastContext = toRenderSVGInlineText(lastTextBox->textRenderer()); |
SVGTextLayoutAttributes* firstAttributes = 0; |
SVGTextLayoutAttributes* lastAttributes = 0; |
- findFirstAndLastAttributesInVector(attributes, firstContext, lastContext, firstAttributes, lastAttributes); |
+ findFirstAndLastAttributesInVector(attributes, &firstContext, &lastContext, firstAttributes, lastAttributes); |
swapItemsInLayoutAttributes(firstAttributes, lastAttributes, firstTextBox->start(), lastTextBox->start()); |
} |