<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[174714] trunk/Source/WebCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/174714">174714</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-14 17:29:51 -0700 (Tue, 14 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use is<>() / downcast<>() for RenderInline
https://bugs.webkit.org/show_bug.cgi?id=137704
Reviewed by Darin Adler.
Use is<>() / downcast<>() for RenderInline and clean up the surrounding
code.
No new tests, no behavior change.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::firstChildInContinuation):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
* inspector/InspectorOverlay.cpp:
(WebCore::buildRendererHighlight):
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
(WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
(WebCore::InlineFlowBox::attachLineBoxToRenderObject):
(WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::paint):
* rendering/InlineIterator.h:
(WebCore::bidiFirstSkippingEmptyInlines):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::inlineElementContinuation):
(WebCore::RenderBlock::addFocusRingRects):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForSegment):
(WebCore::RenderBlockFlow::layoutLineBoxes):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
(WebCore::RenderBox::computePositionedLogicalWidthUsing):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderBoxModelObject.cpp:
(WebCore::accumulateInFlowPositionOffsets):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeRemovedFromTree):
* rendering/RenderElement.h:
(WebCore::RenderElement::dirtyLinesFromChangedChild):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
(WebCore::RenderInline::clippedOverflowRectForRepaint):
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
* rendering/RenderLineBoxList.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::RenderRegion::visualOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::willBeDestroyed):
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::removeAllFromParent):
(WebCore::RenderTextLineBoxes::dirtyRange):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::inlineLogicalWidth):
(WebCore::BreakingContext::handleEmptyInline):
* rendering/line/LineInlineHeaders.h:
(WebCore::requiresLineBox):
(WebCore::setStaticPositions):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paint):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSimplifyMarkupCommandcpp">trunk/Source/WebCore/editing/SimplifyMarkupCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorOverlaycpp">trunk/Source/WebCore/inspector/InspectorOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineFlowBoxcpp">trunk/Source/WebCore/rendering/InlineFlowBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineIteratorh">trunk/Source/WebCore/rendering/InlineIterator.h</a></li>
<li><a href="#trunkSourceWebCorerenderingLayoutStatecpp">trunk/Source/WebCore/rendering/LayoutState.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowcpp">trunk/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockFlowh">trunk/Source/WebCore/rendering/RenderBlockFlow.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockLineLayoutcpp">trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementcpp">trunk/Source/WebCore/rendering/RenderElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementh">trunk/Source/WebCore/rendering/RenderElement.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlowThreadcpp">trunk/Source/WebCore/rendering/RenderFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderInlinecpp">trunk/Source/WebCore/rendering/RenderInline.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderInlineh">trunk/Source/WebCore/rendering/RenderInline.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLineBoxListcpp">trunk/Source/WebCore/rendering/RenderLineBoxList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLineBoxListh">trunk/Source/WebCore/rendering/RenderLineBoxList.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderNamedFlowThreadcpp">trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjectcpp">trunk/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderRegioncpp">trunk/Source/WebCore/rendering/RenderRegion.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderRegionh">trunk/Source/WebCore/rendering/RenderRegion.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderReplacedcpp">trunk/Source/WebCore/rendering/RenderReplaced.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextLineBoxescpp">trunk/Source/WebCore/rendering/RenderTextLineBoxes.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderinglineBreakingContextInlineHeadersh">trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h</a></li>
<li><a href="#trunkSourceWebCorerenderinglineLineInlineHeadersh">trunk/Source/WebCore/rendering/line/LineInlineHeaders.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp">trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/ChangeLog        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -1,3 +1,96 @@
</span><ins>+2014-10-14 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderInline
+ https://bugs.webkit.org/show_bug.cgi?id=137704
+
+ Reviewed by Darin Adler.
+
+ Use is<>() / downcast<>() for RenderInline and clean up the surrounding
+ code.
+
+ No new tests, no behavior change.
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::firstChildInContinuation):
+ * editing/SimplifyMarkupCommand.cpp:
+ (WebCore::SimplifyMarkupCommand::doApply):
+ * inspector/InspectorOverlay.cpp:
+ (WebCore::buildRendererHighlight):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::paintContents):
+ * rendering/InlineFlowBox.cpp:
+ (WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
+ (WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
+ (WebCore::InlineFlowBox::attachLineBoxToRenderObject):
+ (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
+ (WebCore::InlineFlowBox::nodeAtPoint):
+ (WebCore::InlineFlowBox::paint):
+ * rendering/InlineIterator.h:
+ (WebCore::bidiFirstSkippingEmptyInlines):
+ * rendering/LayoutState.cpp:
+ (WebCore::LayoutState::LayoutState):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::willBeDestroyed):
+ (WebCore::RenderBlock::paintObject):
+ (WebCore::RenderBlock::inlineElementContinuation):
+ (WebCore::RenderBlock::addFocusRingRects):
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::willBeDestroyed):
+ (WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
+ * rendering/RenderBlockFlow.h:
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::constructBidiRunsForSegment):
+ (WebCore::RenderBlockFlow::layoutLineBoxes):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::offsetFromContainer):
+ (WebCore::RenderBox::computeRectForRepaint):
+ (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
+ (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
+ (WebCore::RenderBox::computePositionedLogicalWidthUsing):
+ (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
+ (WebCore::RenderBox::layoutOverflowRectForPropagation):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::accumulateInFlowPositionOffsets):
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::willBeRemovedFromTree):
+ * rendering/RenderElement.h:
+ (WebCore::RenderElement::dirtyLinesFromChangedChild):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::willBeDestroyed):
+ (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
+ (WebCore::RenderInline::clippedOverflowRectForRepaint):
+ * rendering/RenderInline.h:
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPosition):
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderLineBoxList.cpp:
+ (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
+ * rendering/RenderLineBoxList.h:
+ * rendering/RenderNamedFlowThread.cpp:
+ (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::insertedIntoTree):
+ * rendering/RenderRegion.cpp:
+ (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
+ (WebCore::RenderRegion::visualOverflowRectForBox):
+ (WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
+ * rendering/RenderRegion.h:
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::willBeDestroyed):
+ * rendering/RenderTextLineBoxes.cpp:
+ (WebCore::RenderTextLineBoxes::removeAllFromParent):
+ (WebCore::RenderTextLineBoxes::dirtyRange):
+ * rendering/line/BreakingContextInlineHeaders.h:
+ (WebCore::inlineLogicalWidth):
+ (WebCore::BreakingContext::handleEmptyInline):
+ * rendering/line/LineInlineHeaders.h:
+ (WebCore::requiresLineBox):
+ (WebCore::setStaticPositions):
+ * rendering/svg/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::paint):
+
</ins><span class="cx"> 2014-10-14 Brent Fulgham <bfulgham@apple.com>
</span><span class="cx">
</span><span class="cx"> [Win] Unreviewed build fix after r174710.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -170,11 +170,11 @@
</span><span class="cx"> auto continuation = renderer.continuation();
</span><span class="cx">
</span><span class="cx"> while (continuation) {
</span><del>- if (continuation->isRenderBlock())
</del><ins>+ if (is<RenderBlock>(*continuation))
</ins><span class="cx"> return continuation;
</span><span class="cx"> if (RenderObject* child = continuation->firstChild())
</span><span class="cx"> return child;
</span><del>- continuation = toRenderInline(continuation)->continuation();
</del><ins>+ continuation = downcast<RenderInline>(*continuation).continuation();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSimplifyMarkupCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SimplifyMarkupCommand.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SimplifyMarkupCommand.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/editing/SimplifyMarkupCommand.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> if (!startingStyle)
</span><span class="cx"> continue;
</span><span class="cx"> Node* currentNode = startingNode;
</span><del>- Node* topNodeWithStartingStyle = 0;
</del><ins>+ Node* topNodeWithStartingStyle = nullptr;
</ins><span class="cx"> while (currentNode != rootNode) {
</span><span class="cx"> if (currentNode->parentNode() != rootNode && isRemovableBlock(currentNode))
</span><span class="cx"> nodesToRemove.append(currentNode);
</span><span class="lines">@@ -70,11 +70,11 @@
</span><span class="cx"> if (!currentNode)
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- if (!currentNode->renderer() || !currentNode->renderer()->isRenderInline() || toRenderInline(currentNode->renderer())->alwaysCreateLineBoxes())
</del><ins>+ if (!is<RenderInline>(currentNode->renderer()) || downcast<RenderInline>(*currentNode->renderer()).alwaysCreateLineBoxes())
</ins><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> if (currentNode->firstChild() != currentNode->lastChild()) {
</span><del>- topNodeWithStartingStyle = 0;
</del><ins>+ topNodeWithStartingStyle = nullptr;
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorOverlaycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -97,43 +97,43 @@
</span><span class="cx"> renderer->absoluteQuads(highlight->quads);
</span><span class="cx"> for (size_t i = 0; i < highlight->quads.size(); ++i)
</span><span class="cx"> contentsQuadToCoordinateSystem(mainView, containingView, highlight->quads[i], coordinateSystem);
</span><del>- } else if (renderer->isBox() || renderer->isRenderInline()) {
</del><ins>+ } else if (is<RenderBox>(*renderer) || is<RenderInline>(*renderer)) {
</ins><span class="cx"> LayoutRect contentBox;
</span><span class="cx"> LayoutRect paddingBox;
</span><span class="cx"> LayoutRect borderBox;
</span><span class="cx"> LayoutRect marginBox;
</span><span class="cx">
</span><del>- if (renderer->isBox()) {
- RenderBox* renderBox = toRenderBox(renderer);
</del><ins>+ if (is<RenderBox>(*renderer)) {
+ auto& renderBox = downcast<RenderBox>(*renderer);
</ins><span class="cx">
</span><del>- LayoutBoxExtent margins(renderBox->marginTop(), renderBox->marginRight(), renderBox->marginBottom(), renderBox->marginLeft());
</del><ins>+ LayoutBoxExtent margins(renderBox.marginTop(), renderBox.marginRight(), renderBox.marginBottom(), renderBox.marginLeft());
</ins><span class="cx">
</span><del>- if (!renderBox->isOutOfFlowPositioned() && region) {
</del><ins>+ if (!renderBox.isOutOfFlowPositioned() && region) {
</ins><span class="cx"> RenderBox::LogicalExtentComputedValues computedValues;
</span><del>- renderBox->computeLogicalWidthInRegion(computedValues, region);
- margins.mutableLogicalLeft(renderBox->style().writingMode()) = computedValues.m_margins.m_start;
- margins.mutableLogicalRight(renderBox->style().writingMode()) = computedValues.m_margins.m_end;
</del><ins>+ renderBox.computeLogicalWidthInRegion(computedValues, region);
+ margins.mutableLogicalLeft(renderBox.style().writingMode()) = computedValues.m_margins.m_start;
+ margins.mutableLogicalRight(renderBox.style().writingMode()) = computedValues.m_margins.m_end;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- paddingBox = renderBox->clientBoxRectInRegion(region);
- contentBox = LayoutRect(paddingBox.x() + renderBox->paddingLeft(), paddingBox.y() + renderBox->paddingTop(),
- paddingBox.width() - renderBox->paddingLeft() - renderBox->paddingRight(), paddingBox.height() - renderBox->paddingTop() - renderBox->paddingBottom());
- borderBox = LayoutRect(paddingBox.x() - renderBox->borderLeft(), paddingBox.y() - renderBox->borderTop(),
- paddingBox.width() + renderBox->borderLeft() + renderBox->borderRight(), paddingBox.height() + renderBox->borderTop() + renderBox->borderBottom());
</del><ins>+ paddingBox = renderBox.clientBoxRectInRegion(region);
+ contentBox = LayoutRect(paddingBox.x() + renderBox.paddingLeft(), paddingBox.y() + renderBox.paddingTop(),
+ paddingBox.width() - renderBox.paddingLeft() - renderBox.paddingRight(), paddingBox.height() - renderBox.paddingTop() - renderBox.paddingBottom());
+ borderBox = LayoutRect(paddingBox.x() - renderBox.borderLeft(), paddingBox.y() - renderBox.borderTop(),
+ paddingBox.width() + renderBox.borderLeft() + renderBox.borderRight(), paddingBox.height() + renderBox.borderTop() + renderBox.borderBottom());
</ins><span class="cx"> marginBox = LayoutRect(borderBox.x() - margins.left(), borderBox.y() - margins.top(),
</span><span class="cx"> borderBox.width() + margins.left() + margins.right(), borderBox.height() + margins.top() + margins.bottom());
</span><span class="cx"> } else {
</span><del>- RenderInline* renderInline = toRenderInline(renderer);
</del><ins>+ auto& renderInline = downcast<RenderInline>(*renderer);
</ins><span class="cx">
</span><span class="cx"> // RenderInline's bounding box includes paddings and borders, excludes margins.
</span><del>- borderBox = renderInline->linesBoundingBox();
- paddingBox = LayoutRect(borderBox.x() + renderInline->borderLeft(), borderBox.y() + renderInline->borderTop(),
- borderBox.width() - renderInline->borderLeft() - renderInline->borderRight(), borderBox.height() - renderInline->borderTop() - renderInline->borderBottom());
- contentBox = LayoutRect(paddingBox.x() + renderInline->paddingLeft(), paddingBox.y() + renderInline->paddingTop(),
- paddingBox.width() - renderInline->paddingLeft() - renderInline->paddingRight(), paddingBox.height() - renderInline->paddingTop() - renderInline->paddingBottom());
</del><ins>+ borderBox = renderInline.linesBoundingBox();
+ paddingBox = LayoutRect(borderBox.x() + renderInline.borderLeft(), borderBox.y() + renderInline.borderTop(),
+ borderBox.width() - renderInline.borderLeft() - renderInline.borderRight(), borderBox.height() - renderInline.borderTop() - renderInline.borderBottom());
+ contentBox = LayoutRect(paddingBox.x() + renderInline.paddingLeft(), paddingBox.y() + renderInline.paddingTop(),
+ paddingBox.width() - renderInline.paddingLeft() - renderInline.paddingRight(), paddingBox.height() - renderInline.paddingTop() - renderInline.paddingBottom());
</ins><span class="cx"> // Ignore marginTop and marginBottom for inlines.
</span><del>- marginBox = LayoutRect(borderBox.x() - renderInline->marginLeft(), borderBox.y(),
- borderBox.width() + renderInline->horizontalMarginExtent(), borderBox.height());
</del><ins>+ marginBox = LayoutRect(borderBox.x() - renderInline.marginLeft(), borderBox.y(),
+ borderBox.width() + renderInline.horizontalMarginExtent(), borderBox.height());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> FloatQuad absContentQuad;
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/page/FrameView.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -3795,7 +3795,7 @@
</span><span class="cx"> FontCachePurgePreventer fontCachePurgePreventer;
</span><span class="cx">
</span><span class="cx"> // m_nodeToDraw is used to draw only one element (and its descendants)
</span><del>- RenderObject* eltRenderer = m_nodeToDraw ? m_nodeToDraw->renderer() : 0;
</del><ins>+ RenderObject* renderer = m_nodeToDraw ? m_nodeToDraw->renderer() : nullptr;
</ins><span class="cx"> RenderLayer* rootLayer = renderView->layer();
</span><span class="cx">
</span><span class="cx"> #ifndef NDEBUG
</span><span class="lines">@@ -3804,12 +3804,12 @@
</span><span class="cx">
</span><span class="cx"> // To work around http://webkit.org/b/135106, ensure that the paint root isn't an inline with culled line boxes.
</span><span class="cx"> // FIXME: This can cause additional content to be included in the snapshot, so remove this once that bug is fixed.
</span><del>- while (eltRenderer && eltRenderer->isRenderInline() && !toRenderInline(eltRenderer)->firstLineBox())
- eltRenderer = eltRenderer->parent();
</del><ins>+ while (is<RenderInline>(renderer) && !downcast<RenderInline>(*renderer).firstLineBox())
+ renderer = renderer->parent();
</ins><span class="cx">
</span><del>- rootLayer->paint(context, dirtyRect, LayoutSize(), m_paintBehavior, eltRenderer);
</del><ins>+ rootLayer->paint(context, dirtyRect, LayoutSize(), m_paintBehavior, renderer);
</ins><span class="cx"> if (rootLayer->containsDirtyOverlayScrollbars())
</span><del>- rootLayer->paintOverlayScrollbars(context, dirtyRect, m_paintBehavior, eltRenderer);
</del><ins>+ rootLayer->paintOverlayScrollbars(context, dirtyRect, m_paintBehavior, renderer);
</ins><span class="cx">
</span><span class="cx"> didPaintContents(context, dirtyRect, paintingState);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineFlowBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -219,7 +219,7 @@
</span><span class="cx">
</span><span class="cx"> void InlineFlowBox::removeLineBoxFromRenderObject()
</span><span class="cx"> {
</span><del>- toRenderInline(renderer()).lineBoxes().removeLineBox(this);
</del><ins>+ downcast<RenderInline>(renderer()).lineBoxes().removeLineBox(this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InlineFlowBox::extractLine()
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">
</span><span class="cx"> void InlineFlowBox::extractLineBoxFromRenderObject()
</span><span class="cx"> {
</span><del>- toRenderInline(renderer()).lineBoxes().extractLineBox(this);
</del><ins>+ downcast<RenderInline>(renderer()).lineBoxes().extractLineBox(this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InlineFlowBox::attachLine()
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx">
</span><span class="cx"> void InlineFlowBox::attachLineBoxToRenderObject()
</span><span class="cx"> {
</span><del>- toRenderInline(renderer()).lineBoxes().attachLineBox(this);
</del><ins>+ downcast<RenderInline>(renderer()).lineBoxes().attachLineBox(this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InlineFlowBox::adjustPosition(float dx, float dy)
</span><span class="lines">@@ -300,7 +300,7 @@
</span><span class="cx">
</span><span class="cx"> // The root inline box never has borders/margins/padding.
</span><span class="cx"> if (parent()) {
</span><del>- const auto& inlineFlow = toRenderInline(renderer());
</del><ins>+ const auto& inlineFlow = downcast<RenderInline>(renderer());
</ins><span class="cx">
</span><span class="cx"> bool ltr = renderer().style().isLeftToRightDirection();
</span><span class="cx">
</span><span class="lines">@@ -1007,29 +1007,29 @@
</span><span class="cx">
</span><span class="cx"> // Check children first.
</span><span class="cx"> // We need to account for culled inline parents of the hit-tested nodes, so that they may also get included in area-based hit-tests.
</span><del>- RenderElement* culledParent = 0;
- for (InlineBox* curr = lastChild(); curr; curr = curr->prevOnLine()) {
- if (curr->renderer().isText() || !curr->boxModelObject()->hasSelfPaintingLayer()) {
- RenderElement* newParent = 0;
</del><ins>+ RenderElement* culledParent = nullptr;
+ for (InlineBox* child = lastChild(); child; child = child->prevOnLine()) {
+ if (is<RenderText>(child->renderer()) || !child->boxModelObject()->hasSelfPaintingLayer()) {
+ RenderElement* newParent = nullptr;
</ins><span class="cx"> // Culled parents are only relevant for area-based hit-tests, so ignore it in point-based ones.
</span><span class="cx"> if (locationInContainer.isRectBasedTest()) {
</span><del>- newParent = curr->renderer().parent();
</del><ins>+ newParent = child->renderer().parent();
</ins><span class="cx"> if (newParent == &renderer())
</span><del>- newParent = 0;
</del><ins>+ newParent = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> // Check the culled parent after all its children have been checked, to do this we wait until
</span><span class="cx"> // we are about to test an element with a different parent.
</span><span class="cx"> if (newParent != culledParent) {
</span><span class="cx"> if (!newParent || !newParent->isDescendantOf(culledParent)) {
</span><span class="cx"> while (culledParent && culledParent != &renderer() && culledParent != newParent) {
</span><del>- if (culledParent->isRenderInline() && toRenderInline(culledParent)->hitTestCulledInline(request, result, locationInContainer, accumulatedOffset))
</del><ins>+ if (is<RenderInline>(*culledParent) && downcast<RenderInline>(*culledParent).hitTestCulledInline(request, result, locationInContainer, accumulatedOffset))
</ins><span class="cx"> return true;
</span><span class="cx"> culledParent = culledParent->parent();
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> culledParent = newParent;
</span><span class="cx"> }
</span><del>- if (curr->nodeAtPoint(request, result, locationInContainer, accumulatedOffset, lineTop, lineBottom)) {
</del><ins>+ if (child->nodeAtPoint(request, result, locationInContainer, accumulatedOffset, lineTop, lineBottom)) {
</ins><span class="cx"> renderer().updateHitTestResult(result, locationInContainer.point() - toLayoutSize(accumulatedOffset));
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="lines">@@ -1037,7 +1037,7 @@
</span><span class="cx"> }
</span><span class="cx"> // Check any culled ancestor of the final children tested.
</span><span class="cx"> while (culledParent && culledParent != &renderer()) {
</span><del>- if (culledParent->isRenderInline() && toRenderInline(culledParent)->hitTestCulledInline(request, result, locationInContainer, accumulatedOffset))
</del><ins>+ if (is<RenderInline>(*culledParent) && downcast<RenderInline>(*culledParent).hitTestCulledInline(request, result, locationInContainer, accumulatedOffset))
</ins><span class="cx"> return true;
</span><span class="cx"> culledParent = culledParent->parent();
</span><span class="cx"> }
</span><span class="lines">@@ -1103,9 +1103,9 @@
</span><span class="cx"> // Add ourselves to the paint info struct's list of inlines that need to paint their
</span><span class="cx"> // outlines.
</span><span class="cx"> if (renderer().style().visibility() == VISIBLE && renderer().hasOutline() && !isRootInlineBox()) {
</span><del>- RenderInline& inlineFlow = toRenderInline(renderer());
</del><ins>+ RenderInline& inlineFlow = downcast<RenderInline>(renderer());
</ins><span class="cx">
</span><del>- RenderBlock* cb = 0;
</del><ins>+ RenderBlock* containingBlock = nullptr;
</ins><span class="cx"> bool containingBlockPaintsContinuationOutline = inlineFlow.continuation() || inlineFlow.isInlineElementContinuation();
</span><span class="cx"> if (containingBlockPaintsContinuationOutline) {
</span><span class="cx"> // FIXME: See https://bugs.webkit.org/show_bug.cgi?id=54690. We currently don't reconnect inline continuations
</span><span class="lines">@@ -1115,8 +1115,8 @@
</span><span class="cx"> if (!enclosingAnonymousBlock->isAnonymousBlock())
</span><span class="cx"> containingBlockPaintsContinuationOutline = false;
</span><span class="cx"> else {
</span><del>- cb = enclosingAnonymousBlock->containingBlock();
- for (auto box = &renderer(); box != cb; box = &box->parent()->enclosingBoxModelObject()) {
</del><ins>+ containingBlock = enclosingAnonymousBlock->containingBlock();
+ for (auto box = &renderer(); box != containingBlock; box = &box->parent()->enclosingBoxModelObject()) {
</ins><span class="cx"> if (box->hasSelfPaintingLayer()) {
</span><span class="cx"> containingBlockPaintsContinuationOutline = false;
</span><span class="cx"> break;
</span><span class="lines">@@ -1128,7 +1128,7 @@
</span><span class="cx"> if (containingBlockPaintsContinuationOutline) {
</span><span class="cx"> // Add ourselves to the containing block of the entire continuation so that it can
</span><span class="cx"> // paint us atomically.
</span><del>- cb->addContinuationWithOutline(toRenderInline(renderer().element()->renderer()));
</del><ins>+ containingBlock->addContinuationWithOutline(downcast<RenderInline>(renderer().element()->renderer()));
</ins><span class="cx"> } else if (!inlineFlow.isInlineElementContinuation())
</span><span class="cx"> paintInfo.outlineObjects->add(&inlineFlow);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineIterator.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineIterator.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/InlineIterator.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -288,31 +288,31 @@
</span><span class="cx"> return bidiNextShared(root, current, observer, IncludeEmptyInlines, endOfInlinePtr);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline RenderObject* bidiFirstSkippingEmptyInlines(RenderElement& root, InlineBidiResolver* resolver = 0)
</del><ins>+static inline RenderObject* bidiFirstSkippingEmptyInlines(RenderElement& root, InlineBidiResolver* resolver = nullptr)
</ins><span class="cx"> {
</span><del>- RenderObject* o = root.firstChild();
- if (!o)
</del><ins>+ RenderObject* renderer = root.firstChild();
+ if (!renderer)
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- if (o->isRenderInline()) {
- notifyObserverEnteredObject(resolver, o);
- if (!isEmptyInline(toRenderInline(*o)))
- o = bidiNextSkippingEmptyInlines(root, o, resolver);
</del><ins>+ if (is<RenderInline>(*renderer)) {
+ notifyObserverEnteredObject(resolver, renderer);
+ if (!isEmptyInline(downcast<RenderInline>(*renderer)))
+ renderer = bidiNextSkippingEmptyInlines(root, renderer, resolver);
</ins><span class="cx"> else {
</span><span class="cx"> // Never skip empty inlines.
</span><span class="cx"> if (resolver)
</span><span class="cx"> resolver->commitExplicitEmbedding();
</span><del>- return o;
</del><ins>+ return renderer;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: Unify this with the bidiNext call above.
</span><del>- if (o && !isIteratorTarget(o))
- o = bidiNextSkippingEmptyInlines(root, o, resolver);
</del><ins>+ if (renderer && !isIteratorTarget(renderer))
+ renderer = bidiNextSkippingEmptyInlines(root, renderer, resolver);
</ins><span class="cx">
</span><span class="cx"> if (resolver)
</span><span class="cx"> resolver->commitExplicitEmbedding();
</span><del>- return o;
</del><ins>+ return renderer;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: This method needs to be renamed when bidiNext finds a good name.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingLayoutStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/LayoutState.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/LayoutState.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/LayoutState.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -53,8 +53,8 @@
</span><span class="cx">
</span><span class="cx"> if (renderer->isOutOfFlowPositioned() && !fixed) {
</span><span class="cx"> if (RenderElement* container = renderer->container()) {
</span><del>- if (container->isInFlowPositioned() && container->isRenderInline())
- m_paintOffset += toRenderInline(container)->offsetForInFlowPositionedInline(renderer);
</del><ins>+ if (container->isInFlowPositioned() && is<RenderInline>(*container))
+ m_paintOffset += downcast<RenderInline>(*container).offsetForInFlowPositionedInline(renderer);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -253,7 +253,7 @@
</span><span class="cx">
</span><span class="cx"> if (!documentBeingDestroyed()) {
</span><span class="cx"> if (parent())
</span><del>- parent()->dirtyLinesFromChangedChild(this);
</del><ins>+ parent()->dirtyLinesFromChangedChild(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> removeFromUpdateScrollInfoAfterLayoutTransaction();
</span><span class="lines">@@ -1630,11 +1630,11 @@
</span><span class="cx"> if ((paintPhase == PaintPhaseOutline || paintPhase == PaintPhaseChildOutlines)) {
</span><span class="cx"> RenderInline* inlineCont = inlineElementContinuation();
</span><span class="cx"> if (inlineCont && inlineCont->hasOutline() && inlineCont->style().visibility() == VISIBLE) {
</span><del>- RenderInline* inlineRenderer = toRenderInline(inlineCont->element()->renderer());
- RenderBlock* cb = containingBlock();
</del><ins>+ RenderInline* inlineRenderer = downcast<RenderInline>(inlineCont->element()->renderer());
+ RenderBlock* containingBlock = this->containingBlock();
</ins><span class="cx">
</span><span class="cx"> bool inlineEnclosedInSelfPaintingLayer = false;
</span><del>- for (RenderBoxModelObject* box = inlineRenderer; box != cb; box = &box->parent()->enclosingBoxModelObject()) {
</del><ins>+ for (RenderBoxModelObject* box = inlineRenderer; box != containingBlock; box = &box->parent()->enclosingBoxModelObject()) {
</ins><span class="cx"> if (box->hasSelfPaintingLayer()) {
</span><span class="cx"> inlineEnclosedInSelfPaintingLayer = true;
</span><span class="cx"> break;
</span><span class="lines">@@ -1645,7 +1645,7 @@
</span><span class="cx"> // anonymous block (i.e. have our own layer), paint them straightaway instead. This is because a block depends on renderers in its continuation table being
</span><span class="cx"> // in the same layer.
</span><span class="cx"> if (!inlineEnclosedInSelfPaintingLayer && !hasLayer())
</span><del>- cb->addContinuationWithOutline(inlineRenderer);
</del><ins>+ containingBlock->addContinuationWithOutline(inlineRenderer);
</ins><span class="cx"> else if (!inlineRenderer->firstLineBox() || (!inlineEnclosedInSelfPaintingLayer && hasLayer()))
</span><span class="cx"> inlineRenderer->paintOutline(paintInfo, paintOffset - locationOffset() + inlineRenderer->containingBlock()->location());
</span><span class="cx"> }
</span><span class="lines">@@ -1664,7 +1664,7 @@
</span><span class="cx"> RenderInline* RenderBlock::inlineElementContinuation() const
</span><span class="cx"> {
</span><span class="cx"> RenderBoxModelObject* continuation = this->continuation();
</span><del>- return continuation && continuation->isRenderInline() ? toRenderInline(continuation) : 0;
</del><ins>+ return is<RenderInline>(continuation) ? downcast<RenderInline>(continuation) : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderBlock* RenderBlock::blockElementContinuation() const
</span><span class="lines">@@ -3400,7 +3400,7 @@
</span><span class="cx"> // FIXME: This is wrong. The principal renderer may not be the continuation preceding this block.
</span><span class="cx"> // FIXME: This is wrong for block-flows that are horizontal.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=46781
</span><del>- bool prevInlineHasLineBox = toRenderInline(inlineElementContinuation()->element()->renderer())->firstLineBox();
</del><ins>+ bool prevInlineHasLineBox = downcast<RenderInline>(*inlineElementContinuation()->element()->renderer()).firstLineBox();
</ins><span class="cx"> float topMargin = prevInlineHasLineBox ? collapsedMarginBefore() : LayoutUnit();
</span><span class="cx"> float bottomMargin = nextInlineHasLineBox ? collapsedMarginAfter() : LayoutUnit();
</span><span class="cx"> LayoutRect rect(additionalOffset.x(), additionalOffset.y() - topMargin, width(), height() + topMargin + bottomMargin);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> } else if (parent())
</span><del>- parent()->dirtyLinesFromChangedChild(this);
</del><ins>+ parent()->dirtyLinesFromChangedChild(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> m_lineBoxes.deleteLineBoxes();
</span><span class="lines">@@ -4032,10 +4032,10 @@
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="cx"> // Case (1) and (2). Inline replaced and inline flow elements.
</span><del>- if (child->isRenderInline()) {
</del><ins>+ if (is<RenderInline>(*child)) {
</ins><span class="cx"> // Add in padding/border/margin from the appropriate side of
</span><span class="cx"> // the element.
</span><del>- float bpm = getBorderPaddingMargin(*toRenderInline(child), childIterator.endOfInline);
</del><ins>+ float bpm = getBorderPaddingMargin(downcast<RenderInline>(*child), childIterator.endOfInline);
</ins><span class="cx"> childMin += bpm;
</span><span class="cx"> childMax += bpm;
</span><span class="cx">
</span><span class="lines">@@ -4057,7 +4057,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (!child->isRenderInline() && !child->isText()) {
</del><ins>+ if (!is<RenderInline>(*child) && !is<RenderText>(*child)) {
</ins><span class="cx"> // Case (2). Inline replaced elements and floats.
</span><span class="cx"> // Go ahead and terminate the current line as far as
</span><span class="cx"> // minwidth is concerned.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockFlowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockFlow.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> virtual LayoutUnit collapsedMarginBefore() const override final { return maxPositiveMarginBefore() - maxNegativeMarginBefore(); }
</span><span class="cx"> virtual LayoutUnit collapsedMarginAfter() const override final { return maxPositiveMarginAfter() - maxNegativeMarginAfter(); }
</span><span class="cx">
</span><del>- virtual void dirtyLinesFromChangedChild(RenderObject* child) override final { lineBoxes().dirtyLinesFromChangedChild(this, child); }
</del><ins>+ virtual void dirtyLinesFromChangedChild(RenderObject& child) override final { lineBoxes().dirtyLinesFromChangedChild(*this, child); }
</ins><span class="cx"> virtual void updateLogicalHeight() override;
</span><span class="cx">
</span><span class="cx"> virtual void paintColumnRules(PaintInfo&, const LayoutPoint&) override;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -925,7 +925,7 @@
</span><span class="cx"> // tree to see which parent inline is the isolate. We could change enterIsolate
</span><span class="cx"> // to take a RenderObject and do this logic there, but that would be a layering
</span><span class="cx"> // violation for BidiResolver (which knows nothing about RenderObject).
</span><del>- RenderInline* isolatedInline = toRenderInline(highestContainingIsolateWithinRoot(startObject, currentRoot));
</del><ins>+ RenderInline* isolatedInline = downcast<RenderInline>(highestContainingIsolateWithinRoot(startObject, currentRoot));
</ins><span class="cx"> ASSERT(isolatedInline);
</span><span class="cx">
</span><span class="cx"> InlineBidiResolver isolatedResolver;
</span><span class="lines">@@ -1487,9 +1487,9 @@
</span><span class="cx"> else
</span><span class="cx"> box.layoutIfNeeded();
</span><span class="cx"> }
</span><del>- } else if (o.isTextOrLineBreak() || (o.isRenderInline() && !walker.atEndOfInline())) {
- if (o.isRenderInline())
- toRenderInline(o).updateAlwaysCreateLineBoxes(layoutState.isFullLayout());
</del><ins>+ } else if (o.isTextOrLineBreak() || (is<RenderInline>(o) && !walker.atEndOfInline())) {
+ if (is<RenderInline>(o))
+ downcast<RenderInline>(o).updateAlwaysCreateLineBoxes(layoutState.isFullLayout());
</ins><span class="cx"> if (layoutState.isFullLayout() || o.selfNeedsLayout())
</span><span class="cx"> dirtyLineBoxesForRenderer(o, layoutState.isFullLayout());
</span><span class="cx"> o.clearNeedsLayout();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -2007,10 +2007,10 @@
</span><span class="cx"> RenderBoxModelObject::mapAbsoluteToLocalPoint(mode, transformState);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderBox::offsetFromContainer(RenderObject* o, const LayoutPoint&, bool* offsetDependsOnPoint) const
</del><ins>+LayoutSize RenderBox::offsetFromContainer(RenderObject* renderer, const LayoutPoint&, bool* offsetDependsOnPoint) const
</ins><span class="cx"> {
</span><span class="cx"> // A region "has" boxes inside it without being their container.
</span><del>- ASSERT(o == container() || o->isRenderRegion());
</del><ins>+ ASSERT(renderer == container() || is<RenderRegion>(*renderer));
</ins><span class="cx">
</span><span class="cx"> LayoutSize offset;
</span><span class="cx"> if (isInFlowPositioned())
</span><span class="lines">@@ -2019,14 +2019,14 @@
</span><span class="cx"> if (!isInline() || isReplaced())
</span><span class="cx"> offset += topLeftLocationOffset();
</span><span class="cx">
</span><del>- if (o->isBox())
- offset -= toRenderBox(o)->scrolledContentOffset();
</del><ins>+ if (is<RenderBox>(*renderer))
+ offset -= downcast<RenderBox>(*renderer).scrolledContentOffset();
</ins><span class="cx">
</span><del>- if (style().position() == AbsolutePosition && o->isInFlowPositioned() && o->isRenderInline())
- offset += toRenderInline(o)->offsetForInFlowPositionedInline(this);
</del><ins>+ if (style().position() == AbsolutePosition && renderer->isInFlowPositioned() && is<RenderInline>(*renderer))
+ offset += downcast<RenderInline>(*renderer).offsetForInFlowPositionedInline(this);
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><del>- *offsetDependsOnPoint |= o->isRenderFlowThread();
</del><ins>+ *offsetDependsOnPoint |= is<RenderFlowThread>(*renderer);
</ins><span class="cx">
</span><span class="cx"> return offset;
</span><span class="cx"> }
</span><span class="lines">@@ -2165,8 +2165,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool containerSkipped;
</span><del>- auto o = container(repaintContainer, &containerSkipped);
- if (!o)
</del><ins>+ auto* renderer = container(repaintContainer, &containerSkipped);
+ if (!renderer)
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> EPosition position = styleToUse.position();
</span><span class="lines">@@ -2178,10 +2178,10 @@
</span><span class="cx"> // us to add the height twice.
</span><span class="cx"> // The same logic applies for elements flowed directly into the flow thread. Their topLeft member
</span><span class="cx"> // will already contain the portion rect of the region.
</span><del>- if (o->isOutOfFlowRenderFlowThread() && position != AbsolutePosition && containingBlock() != flowThreadContainingBlock()) {
</del><ins>+ if (renderer->isOutOfFlowRenderFlowThread() && position != AbsolutePosition && containingBlock() != flowThreadContainingBlock()) {
</ins><span class="cx"> RenderRegion* firstRegion = nullptr;
</span><span class="cx"> RenderRegion* lastRegion = nullptr;
</span><del>- if (toRenderFlowThread(o)->getRegionRangeForBox(this, firstRegion, lastRegion))
</del><ins>+ if (downcast<RenderFlowThread>(*renderer).getRegionRangeForBox(this, firstRegion, lastRegion))
</ins><span class="cx"> rect.moveBy(firstRegion->flowThreadPortionRect().location());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2201,8 +2201,8 @@
</span><span class="cx"> } else if (position == FixedPosition)
</span><span class="cx"> fixed = true;
</span><span class="cx">
</span><del>- if (position == AbsolutePosition && o->isInFlowPositioned() && o->isRenderInline())
- topLeft += toRenderInline(o)->offsetForInFlowPositionedInline(this);
</del><ins>+ if (position == AbsolutePosition && renderer->isInFlowPositioned() && is<RenderInline>(*renderer))
+ topLeft += downcast<RenderInline>(*renderer).offsetForInFlowPositionedInline(this);
</ins><span class="cx"> else if (styleToUse.hasInFlowPosition() && layer()) {
</span><span class="cx"> // Apply the relative position offset when invalidating a rectangle. The layer
</span><span class="cx"> // is translated, but the render box isn't, so we need to do this to get the
</span><span class="lines">@@ -2214,10 +2214,10 @@
</span><span class="cx"> // FIXME: We ignore the lightweight clipping rect that controls use, since if |o| is in mid-layout,
</span><span class="cx"> // its controlClipRect will be wrong. For overflow clip we use the values cached by the layer.
</span><span class="cx"> rect.setLocation(topLeft);
</span><del>- if (o->hasOverflowClip()) {
- RenderBox* containerBox = toRenderBox(o);
- if (shouldApplyContainersClipAndOffset(repaintContainer, containerBox)) {
- containerBox->applyCachedClipAndScrollOffsetForRepaint(rect);
</del><ins>+ if (renderer->hasOverflowClip()) {
+ RenderBox& containerBox = downcast<RenderBox>(*renderer);
+ if (shouldApplyContainersClipAndOffset(repaintContainer, &containerBox)) {
+ containerBox.applyCachedClipAndScrollOffsetForRepaint(rect);
</ins><span class="cx"> if (rect.isEmpty())
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -2225,12 +2225,12 @@
</span><span class="cx">
</span><span class="cx"> if (containerSkipped) {
</span><span class="cx"> // If the repaintContainer is below o, then we need to map the rect into repaintContainer's coordinates.
</span><del>- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(o);
</del><ins>+ LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(renderer);
</ins><span class="cx"> rect.move(-containerOffset);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- o->computeRectForRepaint(repaintContainer, rect, fixed);
</del><ins>+ renderer->computeRectForRepaint(repaintContainer, rect, fixed);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderBox::repaintDuringLayoutIfMoved(const LayoutRect& oldRect)
</span><span class="lines">@@ -3107,11 +3107,11 @@
</span><span class="cx"> return (boxInfo) ? std::max<LayoutUnit>(0, cb.clientLogicalWidth() - (cb.logicalWidth() - boxInfo->logicalWidth())) : cb.clientLogicalWidth();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ASSERT(containingBlock->isRenderInline() && containingBlock->isInFlowPositioned());
</del><ins>+ ASSERT(containingBlock->isInFlowPositioned());
</ins><span class="cx">
</span><del>- const RenderInline* flow = toRenderInline(containingBlock);
- InlineFlowBox* first = flow->firstLineBox();
- InlineFlowBox* last = flow->lastLineBox();
</del><ins>+ const auto& flow = downcast<RenderInline>(*containingBlock);
+ InlineFlowBox* first = flow.firstLineBox();
+ InlineFlowBox* last = flow.lastLineBox();
</ins><span class="cx">
</span><span class="cx"> // If the containing block is empty, return a width of 0.
</span><span class="cx"> if (!first || !last)
</span><span class="lines">@@ -3152,9 +3152,9 @@
</span><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- ASSERT(is<RenderInline>(*containingBlock) && containingBlock->isInFlowPositioned());
</del><ins>+ ASSERT(containingBlock->isInFlowPositioned());
</ins><span class="cx">
</span><del>- const RenderInline& flow = downcast<RenderInline>(*containingBlock);
</del><ins>+ const auto& flow = downcast<RenderInline>(*containingBlock);
</ins><span class="cx"> InlineFlowBox* first = flow.firstLineBox();
</span><span class="cx"> InlineFlowBox* last = flow.lastLineBox();
</span><span class="cx">
</span><span class="lines">@@ -3533,10 +3533,10 @@
</span><span class="cx"> // positioned, inline because right now, it is using the logical left position
</span><span class="cx"> // of the first line box when really it should use the last line box. When
</span><span class="cx"> // this is fixed elsewhere, this block should be removed.
</span><del>- if (containerBlock->isRenderInline() && !containerBlock->style().isLeftToRightDirection()) {
- const RenderInline* flow = toRenderInline(containerBlock);
- InlineFlowBox* firstLine = flow->firstLineBox();
- InlineFlowBox* lastLine = flow->lastLineBox();
</del><ins>+ if (is<RenderInline>(*containerBlock) && !containerBlock->style().isLeftToRightDirection()) {
+ const auto& flow = downcast<RenderInline>(*containerBlock);
+ InlineFlowBox* firstLine = flow.firstLineBox();
+ InlineFlowBox* lastLine = flow.lastLineBox();
</ins><span class="cx"> if (firstLine && lastLine && firstLine != lastLine) {
</span><span class="cx"> computedValues.m_position = logicalLeftValue + marginLogicalLeftValue + lastLine->borderLogicalLeft() + (lastLine->logicalLeft() - firstLine->logicalLeft());
</span><span class="cx"> return;
</span><span class="lines">@@ -3973,10 +3973,10 @@
</span><span class="cx"> // positioned, inline containing block because right now, it is using the logical left position
</span><span class="cx"> // of the first line box when really it should use the last line box. When
</span><span class="cx"> // this is fixed elsewhere, this block should be removed.
</span><del>- if (containerBlock->isRenderInline() && !containerBlock->style().isLeftToRightDirection()) {
- const RenderInline* flow = toRenderInline(containerBlock);
- InlineFlowBox* firstLine = flow->firstLineBox();
- InlineFlowBox* lastLine = flow->lastLineBox();
</del><ins>+ if (is<RenderInline>(*containerBlock) && !containerBlock->style().isLeftToRightDirection()) {
+ const auto& flow = downcast<RenderInline>(*containerBlock);
+ InlineFlowBox* firstLine = flow.firstLineBox();
+ InlineFlowBox* lastLine = flow.lastLineBox();
</ins><span class="cx"> if (firstLine && lastLine && firstLine != lastLine) {
</span><span class="cx"> computedValues.m_position = logicalLeftValue + marginLogicalLeftAlias + lastLine->borderLogicalLeft() + (lastLine->logicalLeft() - firstLine->logicalLeft());
</span><span class="cx"> return;
</span><span class="lines">@@ -4624,7 +4624,7 @@
</span><span class="cx"> RenderRegion* startRegion = nullptr;
</span><span class="cx"> RenderRegion* endRegion = nullptr;
</span><span class="cx"> if (flowThread->getRegionRangeForBox(this, startRegion, endRegion))
</span><del>- overflowRect.unite(namedFlowFragment->visualOverflowRectForBox(this));
</del><ins>+ overflowRect.unite(namedFlowFragment->visualOverflowRectForBox(*this));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (!m_overflow || !usesCompositedScrolling())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -213,13 +213,9 @@
</span><span class="cx"> if (!child->isAnonymousBlock() || !child->isInFlowPositioned())
</span><span class="cx"> return LayoutSize();
</span><span class="cx"> LayoutSize offset;
</span><del>- RenderElement* p = downcast<RenderBlock>(*child).inlineElementContinuation();
- while (is<RenderInline>(p)) {
- if (p->isInFlowPositioned()) {
- RenderInline& renderInline = downcast<RenderInline>(*p);
- offset += renderInline.offsetForInFlowPosition();
- }
- p = p->parent();
</del><ins>+ for (RenderElement* parent = downcast<RenderBlock>(*child).inlineElementContinuation(); is<RenderInline>(parent); parent = parent->parent()) {
+ if (parent->isInFlowPositioned())
+ offset += downcast<RenderInline>(*parent).offsetForInFlowPosition();
</ins><span class="cx"> }
</span><span class="cx"> return offset;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -996,7 +996,7 @@
</span><span class="cx"> view().frameView().removeSlowRepaintObject(this);
</span><span class="cx">
</span><span class="cx"> if (isOutOfFlowPositioned() && parent()->childrenInline())
</span><del>- parent()->dirtyLinesFromChangedChild(this);
</del><ins>+ parent()->dirtyLinesFromChangedChild(*this);
</ins><span class="cx">
</span><span class="cx"> if (auto* containerFlowThread = parent()->renderNamedFlowThreadWrapper())
</span><span class="cx"> containerFlowThread->removeFlowChild(*this);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderElement.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">
</span><span class="cx"> virtual RenderElement* hoverAncestor() const;
</span><span class="cx">
</span><del>- virtual void dirtyLinesFromChangedChild(RenderObject*) { }
</del><ins>+ virtual void dirtyLinesFromChangedChild(RenderObject&) { }
</ins><span class="cx">
</span><span class="cx"> bool ancestorLineBoxDirty() const { return m_ancestorLineBoxDirty; }
</span><span class="cx"> void setAncestorLineBoxDirty(bool f = true);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -1446,7 +1446,7 @@
</span><span class="cx"> break;
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><del>- LayoutRect childVisualOverflowRect = region->visualOverflowRectForBoxForPropagation(child);
</del><ins>+ LayoutRect childVisualOverflowRect = region->visualOverflowRectForBoxForPropagation(*child);
</ins><span class="cx"> childVisualOverflowRect.move(delta);
</span><span class="cx"> region->addVisualOverflowForBox(box, childVisualOverflowRect);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderInlinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderInline.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx"> box->removeFromParent();
</span><span class="cx"> }
</span><span class="cx"> } else if (parent())
</span><del>- parent()->dirtyLinesFromChangedChild(this);
</del><ins>+ parent()->dirtyLinesFromChangedChild(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> m_lineBoxes.deleteLineBoxes();
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> RenderStyle* parentStyle = &parent()->style();
</span><del>- RenderInline* parentRenderInline = parent()->isRenderInline() ? toRenderInline(parent()) : 0;
</del><ins>+ RenderInline* parentRenderInline = is<RenderInline>(*parent()) ? downcast<RenderInline>(parent()) : nullptr;
</ins><span class="cx"> bool checkFonts = document().inNoQuirksMode();
</span><span class="cx"> RenderFlowThread* flowThread = flowThreadContainingBlock();
</span><span class="cx"> bool alwaysCreateLineBoxes = (parentRenderInline && parentRenderInline->alwaysCreateLineBoxes())
</span><span class="lines">@@ -1107,27 +1107,27 @@
</span><span class="cx">
</span><span class="cx"> // We need to add in the in-flow position offsets of any inlines (including us) up to our
</span><span class="cx"> // containing block.
</span><del>- RenderBlock* cb = containingBlock();
- for (const RenderObject* inlineFlow = this; inlineFlow && inlineFlow->isRenderInline() && inlineFlow != cb;
</del><ins>+ RenderBlock* containingBlock = this->containingBlock();
+ for (const RenderElement* inlineFlow = this; is<RenderInline>(inlineFlow) && inlineFlow != containingBlock;
</ins><span class="cx"> inlineFlow = inlineFlow->parent()) {
</span><span class="cx"> if (inlineFlow == repaintContainer) {
</span><span class="cx"> hitRepaintContainer = true;
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx"> if (inlineFlow->style().hasInFlowPosition() && inlineFlow->hasLayer())
</span><del>- repaintRect.move(toRenderInline(inlineFlow)->layer()->offsetForInFlowPosition());
</del><ins>+ repaintRect.move(downcast<RenderInline>(*inlineFlow).layer()->offsetForInFlowPosition());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LayoutUnit outlineSize = style().outlineSize();
</span><span class="cx"> repaintRect.inflate(outlineSize);
</span><span class="cx">
</span><del>- if (hitRepaintContainer || !cb)
</del><ins>+ if (hitRepaintContainer || !containingBlock)
</ins><span class="cx"> return repaintRect;
</span><span class="cx">
</span><del>- if (cb->hasOverflowClip())
- cb->applyCachedClipAndScrollOffsetForRepaint(repaintRect);
</del><ins>+ if (containingBlock->hasOverflowClip())
+ containingBlock->applyCachedClipAndScrollOffsetForRepaint(repaintRect);
</ins><span class="cx">
</span><del>- cb->computeRectForRepaint(repaintContainer, repaintRect);
</del><ins>+ containingBlock->computeRectForRepaint(repaintContainer, repaintRect);
</ins><span class="cx">
</span><span class="cx"> if (outlineSize) {
</span><span class="cx"> for (auto& child : childrenOfType<RenderElement>(*this))
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderInlineh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderInline.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderInline.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderInline.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">
</span><span class="cx"> virtual std::unique_ptr<InlineFlowBox> createInlineFlowBox(); // Subclassed by RenderSVGInline
</span><span class="cx">
</span><del>- virtual void dirtyLinesFromChangedChild(RenderObject* child) override final { m_lineBoxes.dirtyLinesFromChangedChild(this, child); }
</del><ins>+ virtual void dirtyLinesFromChangedChild(RenderObject& child) override final { m_lineBoxes.dirtyLinesFromChangedChild(*this, child); }
</ins><span class="cx">
</span><span class="cx"> virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override final;
</span><span class="cx"> virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override final;
</span><span class="lines">@@ -180,8 +180,6 @@
</span><span class="cx"> RenderLineBoxList m_lineBoxes; // All of the line boxes created for this inline flow. For example, <i>Hello<br>world.</i> will have two <i> line boxes.
</span><span class="cx"> };
</span><span class="cx">
</span><del>-RENDER_OBJECT_TYPE_CASTS(RenderInline, isRenderInline())
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderInline, isRenderInline())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -1198,8 +1198,8 @@
</span><span class="cx"> {
</span><span class="cx"> LayoutPoint localPoint;
</span><span class="cx"> LayoutSize inlineBoundingBoxOffset; // We don't put this into the RenderLayer x/y for inlines, so we need to subtract it out when done.
</span><del>- if (renderer().isInline() && renderer().isRenderInline()) {
- RenderInline& inlineFlow = toRenderInline(renderer());
</del><ins>+ if (renderer().isInline() && is<RenderInline>(renderer())) {
+ auto& inlineFlow = downcast<RenderInline>(renderer());
</ins><span class="cx"> IntRect lineBox = inlineFlow.linesBoundingBox();
</span><span class="cx"> setSize(lineBox.size());
</span><span class="cx"> inlineBoundingBoxOffset = toLayoutSize(lineBox.location());
</span><span class="lines">@@ -1238,8 +1238,8 @@
</span><span class="cx"> localPoint -= offset;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (renderer().isOutOfFlowPositioned() && positionedParent->renderer().isInFlowPositioned() && positionedParent->renderer().isRenderInline()) {
- LayoutSize offset = toRenderInline(positionedParent->renderer()).offsetForInFlowPositionedInline(&toRenderBox(renderer()));
</del><ins>+ if (renderer().isOutOfFlowPositioned() && positionedParent->renderer().isInFlowPositioned() && is<RenderInline>(positionedParent->renderer())) {
+ LayoutSize offset = downcast<RenderInline>(positionedParent->renderer()).offsetForInFlowPositionedInline(&toRenderBox(renderer()));
</ins><span class="cx"> localPoint += offset;
</span><span class="cx"> }
</span><span class="cx"> } else if (parent()) {
</span><span class="lines">@@ -5408,7 +5408,7 @@
</span><span class="cx"> if (isSelfPaintingLayer() && flowThread && !renderer().isInFlowRenderFlowThread()) {
</span><span class="cx"> ASSERT(namedFlowFragment->isValid());
</span><span class="cx"> const RenderBoxModelObject& boxModelObject = downcast<RenderBoxModelObject>(renderer());
</span><del>- LayoutRect layerBoundsWithVisualOverflow = namedFlowFragment->visualOverflowRectForBox(&boxModelObject);
</del><ins>+ LayoutRect layerBoundsWithVisualOverflow = namedFlowFragment->visualOverflowRectForBox(boxModelObject);
</ins><span class="cx">
</span><span class="cx"> // Layers are in physical coordinates so the origin must be moved to the physical top-left of the flowthread.
</span><span class="cx"> if (&boxModelObject == flowThread && flowThread->style().isFlippedBlocksWritingMode()) {
</span><span class="lines">@@ -5457,7 +5457,7 @@
</span><span class="cx"> if (renderBox()->hasVisualOverflow()) {
</span><span class="cx"> // FIXME: Does not do the right thing with CSS regions yet, since we don't yet factor in the
</span><span class="cx"> // individual region boxes as overflow.
</span><del>- LayoutRect layerBoundsWithVisualOverflow = namedFlowFragment ? namedFlowFragment->visualOverflowRectForBox(renderBox()) : renderBox()->visualOverflowRect();
</del><ins>+ LayoutRect layerBoundsWithVisualOverflow = namedFlowFragment ? namedFlowFragment->visualOverflowRectForBox(*renderBox()) : renderBox()->visualOverflowRect();
</ins><span class="cx"> renderBox()->flipForWritingMode(layerBoundsWithVisualOverflow); // Layers are in physical coordinates, so the overflow has to be flipped.
</span><span class="cx"> layerBoundsWithVisualOverflow.move(offsetFromRootLocal);
</span><span class="cx"> if (this != clipRectsContext.rootLayer || clipRectsContext.respectOverflowClip == RespectOverflowClip)
</span><span class="lines">@@ -5593,7 +5593,7 @@
</span><span class="cx"> // to the flow thread, not the last region (in which it will end up because of bottom:0px)
</span><span class="cx"> if (namedFlowFragment && renderer().flowThreadContainingBlock()) {
</span><span class="cx"> LayoutRect b = layerBounds;
</span><del>- b.moveBy(namedFlowFragment->visualOverflowRectForBox(downcast<RenderBoxModelObject>(&renderer())).location());
</del><ins>+ b.moveBy(namedFlowFragment->visualOverflowRectForBox(downcast<RenderBoxModelObject>(renderer())).location());
</ins><span class="cx"> b.inflate(renderer().view().maximalOutlineSize());
</span><span class="cx"> if (b.intersects(damageRect))
</span><span class="cx"> return true;
</span><span class="lines">@@ -5620,10 +5620,10 @@
</span><span class="cx"> // as part of our bounding box. We do this because we are the responsible layer for both hit testing and painting those
</span><span class="cx"> // floats.
</span><span class="cx"> LayoutRect result;
</span><del>- if (renderer().isInline() && renderer().isRenderInline())
- result = toRenderInline(renderer()).linesVisualOverflowBoundingBox();
</del><ins>+ if (renderer().isInline() && is<RenderInline>(renderer()))
+ result = downcast<RenderInline>(renderer()).linesVisualOverflowBoundingBox();
</ins><span class="cx"> else if (is<RenderTableRow>(renderer())) {
</span><del>- RenderTableRow& tableRow = downcast<RenderTableRow>(renderer());
</del><ins>+ auto& tableRow = downcast<RenderTableRow>(renderer());
</ins><span class="cx"> // Our bounding box is just the union of all of our cells' border/overflow rects.
</span><span class="cx"> for (RenderTableCell* cell = tableRow.firstCell(); cell; cell = cell->nextCell()) {
</span><span class="cx"> LayoutRect bbox = cell->borderBoxRect();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLineBoxListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLineBoxList.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLineBoxList.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderLineBoxList.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -312,22 +312,22 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderLineBoxList::dirtyLinesFromChangedChild(RenderBoxModelObject* container, RenderObject* child)
</del><ins>+void RenderLineBoxList::dirtyLinesFromChangedChild(RenderBoxModelObject& container, RenderObject& child)
</ins><span class="cx"> {
</span><del>- ASSERT(container->isRenderInline() || container->isRenderBlockFlow());
- if (!container->parent() || (container->isRenderBlockFlow() && container->selfNeedsLayout()))
</del><ins>+ ASSERT(is<RenderInline>(container) || is<RenderBlockFlow>(container));
+ if (!container.parent() || (is<RenderBlockFlow>(container) && container.selfNeedsLayout()))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- RenderInline* inlineContainer = container->isRenderInline() ? toRenderInline(container) : 0;
</del><ins>+ RenderInline* inlineContainer = is<RenderInline>(container) ? &downcast<RenderInline>(container) : nullptr;
</ins><span class="cx"> InlineBox* firstBox = inlineContainer ? inlineContainer->firstLineBoxIncludingCulling() : firstLineBox();
</span><span class="cx">
</span><span class="cx"> // If we have no first line box, then just bail early.
</span><span class="cx"> if (!firstBox) {
</span><span class="cx"> // For an empty inline, go ahead and propagate the check up to our parent, unless the parent
</span><span class="cx"> // is already dirty.
</span><del>- if (container->isInline() && !container->ancestorLineBoxDirty()) {
- container->parent()->dirtyLinesFromChangedChild(container);
- container->setAncestorLineBoxDirty(); // Mark the container to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
</del><ins>+ if (container.isInline() && !container.ancestorLineBoxDirty()) {
+ container.parent()->dirtyLinesFromChangedChild(container);
+ container.setAncestorLineBoxDirty(); // Mark the container to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
</ins><span class="cx"> }
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -337,7 +337,7 @@
</span><span class="cx"> // parent's first line box.
</span><span class="cx"> RootInlineBox* box = nullptr;
</span><span class="cx"> RenderObject* current;
</span><del>- for (current = child->previousSibling(); current; current = current->previousSibling()) {
</del><ins>+ for (current = child.previousSibling(); current; current = current->previousSibling()) {
</ins><span class="cx"> if (current->isFloatingOrOutOfFlowPositioned())
</span><span class="cx"> continue;
</span><span class="cx">
</span><span class="lines">@@ -367,7 +367,7 @@
</span><span class="cx"> // This isn't good enough, since we won't locate the root line box that encloses the removed
</span><span class="cx"> // <br>. We have to just over-invalidate a bit and go up to our parent.
</span><span class="cx"> if (!inlineContainer->ancestorLineBoxDirty()) {
</span><del>- inlineContainer->parent()->dirtyLinesFromChangedChild(inlineContainer);
</del><ins>+ inlineContainer->parent()->dirtyLinesFromChangedChild(*inlineContainer);
</ins><span class="cx"> inlineContainer->setAncestorLineBoxDirty(); // Mark the container to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
</span><span class="cx"> }
</span><span class="cx"> return;
</span><span class="lines">@@ -394,9 +394,9 @@
</span><span class="cx"> // If |child| has been inserted before the first element in the linebox, but after collapsed leading
</span><span class="cx"> // space, the search for |child|'s linebox will go past the leading space to the previous linebox and select that
</span><span class="cx"> // one as |box|. If we hit that situation here, dirty the |box| actually containing the child too.
</span><del>- bool insertedAfterLeadingSpace = box->lineBreakObj() == child->previousSibling();
- if (adjacentBox && (adjacentBox->lineBreakObj() == child || child->isBR() || (current && current->isBR())
- || insertedAfterLeadingSpace || isIsolated(container->style().unicodeBidi())))
</del><ins>+ bool insertedAfterLeadingSpace = box->lineBreakObj() == child.previousSibling();
+ if (adjacentBox && (adjacentBox->lineBreakObj() == &child || child.isBR() || (current && current->isBR())
+ || insertedAfterLeadingSpace || isIsolated(container.style().unicodeBidi())))
</ins><span class="cx"> adjacentBox->markDirty();
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLineBoxListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLineBoxList.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLineBoxList.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderLineBoxList.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> void removeLineBox(InlineFlowBox*);
</span><span class="cx">
</span><span class="cx"> void dirtyLineBoxes();
</span><del>- void dirtyLinesFromChangedChild(RenderBoxModelObject* parent, RenderObject* child);
</del><ins>+ void dirtyLinesFromChangedChild(RenderBoxModelObject& parent, RenderObject& child);
</ins><span class="cx">
</span><span class="cx"> void paint(RenderBoxModelObject*, PaintInfo&, const LayoutPoint&) const;
</span><span class="cx"> bool hitTest(RenderBoxModelObject*, const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderNamedFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx">
</span><span class="cx"> LayoutRect RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment(const RenderBox& box, RenderNamedFlowFragment& fragment) const
</span><span class="cx"> {
</span><del>- LayoutRect visualOverflowRect = fragment.visualOverflowRectForBox(&box);
</del><ins>+ LayoutRect visualOverflowRect = fragment.visualOverflowRectForBox(box);
</ins><span class="cx"> LayoutUnit initialLogicalX = style().isHorizontalWritingMode() ? visualOverflowRect.x() : visualOverflowRect.y();
</span><span class="cx">
</span><span class="cx"> // The visual overflow rect returned by visualOverflowRectForBox is already flipped but the
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -2047,7 +2047,7 @@
</span><span class="cx"> // FIXME: We should ASSERT(isRooted()) here but generated content makes some out-of-order insertion.
</span><span class="cx">
</span><span class="cx"> if (!isFloating() && parent()->childrenInline())
</span><del>- parent()->dirtyLinesFromChangedChild(this);
</del><ins>+ parent()->dirtyLinesFromChangedChild(*this);
</ins><span class="cx">
</span><span class="cx"> // We have to unset the current layout RenderFlowThread here, since insertedIntoTree() can happen in
</span><span class="cx"> // the middle of layout but for objects inside a nested flow thread that is still being populated. This
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderRegioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderRegion.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderRegion.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderRegion.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> if (shouldClipFlowThreadContent())
</span><span class="cx"> return flowThreadPortionRect;
</span><span class="cx">
</span><del>- LayoutRect flowThreadOverflow = overflowType == VisualOverflow ? visualOverflowRectForBox(m_flowThread) : layoutOverflowRectForBox(m_flowThread);
</del><ins>+ LayoutRect flowThreadOverflow = overflowType == VisualOverflow ? visualOverflowRectForBox(*m_flowThread) : layoutOverflowRectForBox(m_flowThread);
</ins><span class="cx">
</span><span class="cx"> // We are interested about the outline size only when computing the visual overflow.
</span><span class="cx"> LayoutUnit outlineSize = overflowType == VisualOverflow ? LayoutUnit(maximalOutlineSize(PaintPhaseOutline)) : LayoutUnit();
</span><span class="lines">@@ -523,16 +523,16 @@
</span><span class="cx"> return overflow->layoutOverflowRect();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutRect RenderRegion::visualOverflowRectForBox(const RenderBoxModelObject* box)
</del><ins>+LayoutRect RenderRegion::visualOverflowRectForBox(const RenderBoxModelObject& box)
</ins><span class="cx"> {
</span><del>- if (box->isRenderInline()) {
- const RenderInline* inlineBox = toRenderInline(box);
- return inlineBox->linesVisualOverflowBoundingBoxInRegion(this);
</del><ins>+ if (is<RenderInline>(box)) {
+ const RenderInline& inlineBox = downcast<RenderInline>(box);
+ return inlineBox.linesVisualOverflowBoundingBoxInRegion(this);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (box->isBox()) {
</del><ins>+ if (is<RenderBox>(box)) {
</ins><span class="cx"> RefPtr<RenderOverflow> overflow;
</span><del>- ensureOverflowForBox(toRenderBox(box), overflow, true);
</del><ins>+ ensureOverflowForBox(&downcast<RenderBox>(box), overflow, true);
</ins><span class="cx">
</span><span class="cx"> ASSERT(overflow);
</span><span class="cx"> return overflow->visualOverflowRect();
</span><span class="lines">@@ -563,7 +563,7 @@
</span><span class="cx"> return rect;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutRect RenderRegion::visualOverflowRectForBoxForPropagation(const RenderBoxModelObject* box)
</del><ins>+LayoutRect RenderRegion::visualOverflowRectForBoxForPropagation(const RenderBoxModelObject& box)
</ins><span class="cx"> {
</span><span class="cx"> LayoutRect rect = visualOverflowRectForBox(box);
</span><span class="cx"> flowThread()->flipForWritingModeLocalCoordinates(rect);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderRegionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderRegion.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderRegion.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderRegion.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -113,9 +113,9 @@
</span><span class="cx"> void addLayoutOverflowForBox(const RenderBox*, const LayoutRect&);
</span><span class="cx"> void addVisualOverflowForBox(const RenderBox*, const LayoutRect&);
</span><span class="cx"> LayoutRect layoutOverflowRectForBox(const RenderBox*);
</span><del>- LayoutRect visualOverflowRectForBox(const RenderBoxModelObject*);
</del><ins>+ LayoutRect visualOverflowRectForBox(const RenderBoxModelObject&);
</ins><span class="cx"> LayoutRect layoutOverflowRectForBoxForPropagation(const RenderBox*);
</span><del>- LayoutRect visualOverflowRectForBoxForPropagation(const RenderBoxModelObject*);
</del><ins>+ LayoutRect visualOverflowRectForBoxForPropagation(const RenderBoxModelObject&);
</ins><span class="cx">
</span><span class="cx"> LayoutRect rectFlowPortionForBox(const RenderBox*, const LayoutRect&) const;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderReplacedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderReplaced.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderReplaced.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderReplaced.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> void RenderReplaced::willBeDestroyed()
</span><span class="cx"> {
</span><span class="cx"> if (!documentBeingDestroyed() && parent())
</span><del>- parent()->dirtyLinesFromChangedChild(this);
</del><ins>+ parent()->dirtyLinesFromChangedChild(*this);
</ins><span class="cx">
</span><span class="cx"> RenderBox::willBeDestroyed();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextLineBoxescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextLineBoxes.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextLineBoxes.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/RenderTextLineBoxes.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (!m_first) {
</span><span class="cx"> if (renderer.parent())
</span><del>- renderer.parent()->dirtyLinesFromChangedChild(&renderer);
</del><ins>+ renderer.parent()->dirtyLinesFromChangedChild(renderer);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> for (auto box = m_first; box; box = box->nextTextBox())
</span><span class="lines">@@ -683,7 +683,7 @@
</span><span class="cx">
</span><span class="cx"> // If the text node is empty, dirty the line where new text will be inserted.
</span><span class="cx"> if (!m_first && renderer.parent()) {
</span><del>- renderer.parent()->dirtyLinesFromChangedChild(&renderer);
</del><ins>+ renderer.parent()->dirtyLinesFromChangedChild(renderer);
</ins><span class="cx"> dirtiedLines = true;
</span><span class="cx"> }
</span><span class="cx"> return dirtiedLines;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderinglineBreakingContextInlineHeadersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -286,8 +286,8 @@
</span><span class="cx"> unsigned lineDepth = 1;
</span><span class="cx"> LayoutUnit extraWidth = 0;
</span><span class="cx"> RenderElement* parent = child->parent();
</span><del>- while (parent->isRenderInline() && lineDepth++ < cMaxLineDepth) {
- const RenderInline& parentAsRenderInline = toRenderInline(*parent);
</del><ins>+ while (is<RenderInline>(*parent) && lineDepth++ < cMaxLineDepth) {
+ const auto& parentAsRenderInline = downcast<RenderInline>(*parent);
</ins><span class="cx"> if (!isEmptyInline(parentAsRenderInline)) {
</span><span class="cx"> checkStartEdge = checkStartEdge && shouldAddBorderPaddingMargin(previousInFlowSibling(child));
</span><span class="cx"> if (checkStartEdge)
</span><span class="lines">@@ -373,7 +373,7 @@
</span><span class="cx">
</span><span class="cx"> inline void BreakingContext::handleEmptyInline()
</span><span class="cx"> {
</span><del>- RenderInline& flowBox = toRenderInline(*m_current.renderer());
</del><ins>+ RenderInline& flowBox = downcast<RenderInline>(*m_current.renderer());
</ins><span class="cx">
</span><span class="cx"> // This should only end up being called on empty inlines
</span><span class="cx"> ASSERT(isEmptyInline(flowBox));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderinglineLineInlineHeadersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/line/LineInlineHeaders.h (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/line/LineInlineHeaders.h        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/line/LineInlineHeaders.h        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -105,8 +105,8 @@
</span><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> bool rendererIsEmptyInline = false;
</span><del>- if (it.renderer()->isRenderInline()) {
- const RenderInline& inlineRenderer = toRenderInline(*it.renderer());
</del><ins>+ if (is<RenderInline>(*it.renderer())) {
+ const auto& inlineRenderer = downcast<RenderInline>(*it.renderer());
</ins><span class="cx"> if (!alwaysRequiresLineBox(inlineRenderer) && !requiresLineBoxForContent(inlineRenderer, lineInfo))
</span><span class="cx"> return false;
</span><span class="cx"> rendererIsEmptyInline = isEmptyInline(inlineRenderer);
</span><span class="lines">@@ -126,12 +126,12 @@
</span><span class="cx"> // will work for the common cases
</span><span class="cx"> RenderElement* containerBlock = child.container();
</span><span class="cx"> LayoutUnit blockHeight = block.logicalHeight();
</span><del>- if (containerBlock->isRenderInline()) {
</del><ins>+ if (is<RenderInline>(*containerBlock)) {
</ins><span class="cx"> // A relative positioned inline encloses us. In this case, we also have to determine our
</span><span class="cx"> // position as though we were an inline. Set |staticInlinePosition| and |staticBlockPosition| on the relative positioned
</span><span class="cx"> // inline so that we can obtain the value later.
</span><del>- toRenderInline(containerBlock)->layer()->setStaticInlinePosition(block.startAlignedOffsetForLine(blockHeight, false));
- toRenderInline(containerBlock)->layer()->setStaticBlockPosition(blockHeight);
</del><ins>+ downcast<RenderInline>(*containerBlock).layer()->setStaticInlinePosition(block.startAlignedOffsetForLine(blockHeight, false));
+ downcast<RenderInline>(*containerBlock).layer()->setStaticBlockPosition(blockHeight);
</ins><span class="cx"> }
</span><span class="cx"> block.updateStaticInlinePositionForChild(child, blockHeight);
</span><span class="cx"> child.layer()->setStaticBlockPosition(blockHeight);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp (174713 => 174714)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2014-10-15 00:02:24 UTC (rev 174713)
+++ trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2014-10-15 00:29:51 UTC (rev 174714)
</span><span class="lines">@@ -338,8 +338,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Finally, paint the outline if any.
</span><del>- if (renderer().style().hasOutline() && parentRenderer.isRenderInline())
- toRenderInline(parentRenderer).paintOutline(paintInfo, paintOffset);
</del><ins>+ if (renderer().style().hasOutline() && is<RenderInline>(parentRenderer))
+ downcast<RenderInline>(parentRenderer).paintOutline(paintInfo, paintOffset);
</ins><span class="cx">
</span><span class="cx"> ASSERT(!m_paintingResource);
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>