Title: [170024] trunk/Source/WebCore
Revision
170024
Author
[email protected]
Date
2014-06-16 12:52:21 -0700 (Mon, 16 Jun 2014)

Log Message

Use references instead of pointers to RenderBlock in RenderObject::enclosingBox().
https://bugs.webkit.org/show_bug.cgi?id=133902

Patch by Jeongeun Kim <[email protected]> on 2014-06-16
Reviewed by Andreas Kling.

Just a straightforward conversion from pointers to references.

No new tests, no behavior change.

* bindings/objc/DOMUIKitExtensions.mm:
(-[DOMHTMLElement structuralComplexityContribution]):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForRendererFragments):
* page/EventHandler.cpp:
(WebCore::scrollNode):
(WebCore::EventHandler::scrollOverflow):
(WebCore::EventHandler::logicalScrollOverflow):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderBox.cpp:
(WebCore::computeInlineStaticDistance):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::computedRegionRangeForBox):
(WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
(WebCore::RenderFlowThread::objectInFlowRegion):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingBox): Removed FIXME comment
* rendering/RenderObject.h:
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::owningRenderer):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (170023 => 170024)


--- trunk/Source/WebCore/ChangeLog	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/ChangeLog	2014-06-16 19:52:21 UTC (rev 170024)
@@ -1,3 +1,40 @@
+2014-06-16  Jeongeun Kim  <[email protected]>
+
+        Use references instead of pointers to RenderBlock in RenderObject::enclosingBox().
+        https://bugs.webkit.org/show_bug.cgi?id=133902
+
+        Reviewed by Andreas Kling.
+
+        Just a straightforward conversion from pointers to references.
+
+        No new tests, no behavior change.
+
+        * bindings/objc/DOMUIKitExtensions.mm:
+        (-[DOMHTMLElement structuralComplexityContribution]):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute):
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::buildObjectForRendererFragments):
+        * page/EventHandler.cpp:
+        (WebCore::scrollNode):
+        (WebCore::EventHandler::scrollOverflow):
+        (WebCore::EventHandler::logicalScrollOverflow):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::layout):
+        * rendering/RenderBox.cpp:
+        (WebCore::computeInlineStaticDistance):
+        * rendering/RenderFlowThread.cpp:
+        (WebCore::RenderFlowThread::computedRegionRangeForBox):
+        (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
+        (WebCore::RenderFlowThread::objectInFlowRegion):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::calculateClipRects):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::enclosingBox): Removed FIXME comment
+        * rendering/RenderObject.h:
+        * rendering/RenderScrollbar.cpp:
+        (WebCore::RenderScrollbar::owningRenderer):
+
 2014-06-16  Anders Carlsson  <[email protected]>
 
         Use HTTPHeaderName in more places

Modified: trunk/Source/WebCore/bindings/objc/DOMUIKitExtensions.mm (170023 => 170024)


--- trunk/Source/WebCore/bindings/objc/DOMUIKitExtensions.mm	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/bindings/objc/DOMUIKitExtensions.mm	2014-06-16 19:52:21 UTC (rev 170024)
@@ -349,10 +349,10 @@
         } else if (renderer->isRenderBlockFlow() || (renderer->isRenderBlock() && toRenderBlock(renderer)->inlineElementContinuation() != 0)) {
             BOOL noCost = NO;
             if (renderer->isBox()) {
-                RenderBox *asBox = renderer->enclosingBox();
-                RenderObject *parent = asBox->parent();
+                RenderBox &asBox = renderer->enclosingBox();
+                RenderObject *parent = asBox.parent();
                 RenderBox *parentRenderBox = (parent && parent->isBox()) ? toRenderBox(parent) : 0;
-                if (parentRenderBox && asBox && asBox->width() == parentRenderBox->width()) {
+                if (parentRenderBox && asBox.width() == parentRenderBox->width()) {
                     noCost = YES;
                 }
             }

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (170023 => 170024)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -5611,7 +5611,7 @@
 LayoutRect HTMLMediaElement::mediaPlayerContentBoxRect() const
 {
     if (renderer())
-        return renderer()->enclosingBox()->contentBoxRect();
+        return renderer()->enclosingBox().contentBoxRect();
     return LayoutRect();
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (170023 => 170024)


--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -511,10 +511,9 @@
         buildRendererHighlight(renderer, nullptr, config, &highlight);
         fragmentsArray->pushObject(buildObjectForHighlight(highlight));
     } else {
-        RenderBox* enclosingBox = renderer->enclosingBox();
         RenderRegion* startRegion = nullptr;
         RenderRegion* endRegion = nullptr;
-        if (!containingFlowThread->getRegionRangeForBox(enclosingBox, startRegion, endRegion)) {
+        if (!containingFlowThread->getRegionRangeForBox(&renderer->enclosingBox(), startRegion, endRegion)) {
             // The flow has no visible regions. The renderer is not visible on screen.
             return nullptr;
         }

Modified: trunk/Source/WebCore/page/EventHandler.cpp (170023 => 170024)


--- trunk/Source/WebCore/page/EventHandler.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/page/EventHandler.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -289,10 +289,10 @@
         return false;
     if (!node->renderer())
         return false;
-    RenderBox* enclosingBox = node->renderer()->enclosingBox();
+    RenderBox& enclosingBox = node->renderer()->enclosingBox();
     float absDelta = delta > 0 ? delta : -delta;
 
-    return enclosingBox->scroll(delta < 0 ? negativeDirection : positiveDirection, granularity, absDelta, stopElement, enclosingBox, wheelEventAbsolutePoint);
+    return enclosingBox.scroll(delta < 0 ? negativeDirection : positiveDirection, granularity, absDelta, stopElement, &enclosingBox, wheelEventAbsolutePoint);
 }
 
 #if (ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS))
@@ -1106,7 +1106,7 @@
     
     if (node) {
         auto r = node->renderer();
-        if (r && !r->isListBox() && r->enclosingBox()->scroll(direction, granularity)) {
+        if (r && !r->isListBox() && r->enclosingBox().scroll(direction, granularity)) {
             setFrameWasScrolledByUser();
             return true;
         }
@@ -1127,7 +1127,7 @@
     
     if (node) {
         auto r = node->renderer();
-        if (r && !r->isListBox() && r->enclosingBox()->logicalScroll(direction, granularity)) {
+        if (r && !r->isListBox() && r->enclosingBox().logicalScroll(direction, granularity)) {
             setFrameWasScrolledByUser();
             return true;
         }

Modified: trunk/Source/WebCore/page/FrameView.cpp (170023 => 170024)


--- trunk/Source/WebCore/page/FrameView.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/page/FrameView.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -1189,7 +1189,7 @@
                 if (body->hasTagName(framesetTag) && !frameFlatteningEnabled()) {
                     body->renderer()->setChildNeedsLayout();
                 } else if (body->hasTagName(bodyTag)) {
-                    if (!m_firstLayout && m_size.height() != layoutHeight() && body->renderer()->enclosingBox()->stretchesToViewport())
+                    if (!m_firstLayout && m_size.height() != layoutHeight() && body->renderer()->enclosingBox().stretchesToViewport())
                         body->renderer()->setChildNeedsLayout();
                 }
             }

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (170023 => 170024)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -3163,14 +3163,14 @@
         }
         logicalLeft.setValue(Fixed, staticPosition);
     } else {
-        RenderBox* enclosingBox = child->parent()->enclosingBox();
+        RenderBox& enclosingBox = child->parent()->enclosingBox();
         LayoutUnit staticPosition = child->layer()->staticInlinePosition() + containerLogicalWidth + containerBlock->borderLogicalLeft();
-        for (RenderElement* curr = enclosingBox; curr; curr = curr->container()) {
+        for (RenderElement* curr = &enclosingBox; curr; curr = curr->container()) {
             if (curr->isBox()) {
                 if (curr != containerBlock)
                     staticPosition -= toRenderBox(curr)->logicalLeft();
-                if (curr == enclosingBox)
-                    staticPosition -= enclosingBox->logicalWidth();
+                if (curr == &enclosingBox)
+                    staticPosition -= enclosingBox.logicalWidth();
                 if (region && curr->isRenderBlock()) {
                     const RenderBlock* cb = toRenderBlock(curr);
                     region = cb->clampToStartAndEndRegions(region);
@@ -3178,8 +3178,8 @@
                     if (boxInfo) {
                         if (curr != containerBlock)
                             staticPosition -= cb->logicalWidth() - (boxInfo->logicalLeft() + boxInfo->logicalWidth());
-                        if (curr == enclosingBox)
-                            staticPosition += enclosingBox->logicalWidth() - boxInfo->logicalWidth();
+                        if (curr == &enclosingBox)
+                            staticPosition += enclosingBox.logicalWidth() - boxInfo->logicalWidth();
                     }
                 }
             }

Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (170023 => 170024)


--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -823,7 +823,7 @@
         // (e.g. if we use containingBlock() the shadow controls of a video element won't get the range from the
         // video box because it's not a block; they need to be patched separately).
         ASSERT(cb->parent());
-        cb = cb->parent()->enclosingBox();
+        cb = &cb->parent()->enclosingBox();
         ASSERT(cb);
 
         // If a box doesn't have a cached region range it usually means the box belongs to a line so startRegion should be equal with endRegion.
@@ -865,12 +865,11 @@
     if (!m_regionList.contains(const_cast<RenderRegion*>(region)))
         return false;
     
-    RenderBox* enclosingBox = object->enclosingBox();
     RenderRegion* enclosingBoxStartRegion = nullptr;
     RenderRegion* enclosingBoxEndRegion = nullptr;
     // If the box has no range, do not check regionInRange. Boxes inside inlines do not get ranges.
     // Instead, the containing RootInlineBox will abort when trying to paint inside the wrong region.
-    if (computedRegionRangeForBox(enclosingBox, enclosingBoxStartRegion, enclosingBoxEndRegion)
+    if (computedRegionRangeForBox(&object->enclosingBox(), enclosingBoxStartRegion, enclosingBoxEndRegion)
         && !regionInRange(region, enclosingBoxStartRegion, enclosingBoxEndRegion))
         return false;
     
@@ -889,10 +888,9 @@
     if (!m_regionList.contains(const_cast<RenderRegion*>(region)))
         return false;
 
-    RenderBox* enclosingBox = object->enclosingBox();
     RenderRegion* enclosingBoxStartRegion = nullptr;
     RenderRegion* enclosingBoxEndRegion = nullptr;
-    if (!getRegionRangeForBox(enclosingBox, enclosingBoxStartRegion, enclosingBoxEndRegion))
+    if (!getRegionRangeForBox(&object->enclosingBox(), enclosingBoxStartRegion, enclosingBoxEndRegion))
         return false;
 
     if (!regionInRange(region, enclosingBoxStartRegion, enclosingBoxEndRegion))

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (170023 => 170024)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -5334,7 +5334,7 @@
             else
                 layerBoundsWithVisualOverflow.moveBy(LayoutPoint(flowThread->width(), 0));
         } else {
-            RenderBlock* rendererContainingBlock = boxModelObject.enclosingBox()->isRenderBlock() ? toRenderBlock(boxModelObject.enclosingBox()) : 0;
+            RenderBlock* rendererContainingBlock = boxModelObject.enclosingBox().isRenderBlock() ? toRenderBlock(&boxModelObject.enclosingBox()) : 0;
             if (rendererContainingBlock)
                 rendererContainingBlock->flipForWritingMode(layerBoundsWithVisualOverflow);
         }

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (170023 => 170024)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -490,10 +490,9 @@
     return true;
 }
 
-RenderBox* RenderObject::enclosingBox() const
+RenderBox& RenderObject::enclosingBox() const
 {
-    // FIXME: This should return a reference; it can always find the root RenderView.
-    return lineageOfType<RenderBox>(const_cast<RenderObject&>(*this)).first();
+    return *lineageOfType<RenderBox>(const_cast<RenderObject&>(*this)).first();
 }
 
 RenderBoxModelObject* RenderObject::enclosingBoxModelObject() const

Modified: trunk/Source/WebCore/rendering/RenderObject.h (170023 => 170024)


--- trunk/Source/WebCore/rendering/RenderObject.h	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2014-06-16 19:52:21 UTC (rev 170024)
@@ -206,7 +206,7 @@
     bool scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, const ScrollAlignment& alignY = ScrollAlignment::alignCenterIfNeeded);
 
     // Convenience function for getting to the nearest enclosing box of a RenderObject.
-    RenderBox* enclosingBox() const;
+    RenderBox& enclosingBox() const;
     RenderBoxModelObject* enclosingBoxModelObject() const;
 
     bool fixedPositionedWithNamedFlowContainingBlock() const;

Modified: trunk/Source/WebCore/rendering/RenderScrollbar.cpp (170023 => 170024)


--- trunk/Source/WebCore/rendering/RenderScrollbar.cpp	2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderScrollbar.cpp	2014-06-16 19:52:21 UTC (rev 170024)
@@ -77,7 +77,9 @@
         return currentRenderer;
     }
     ASSERT(m_ownerElement);
-    return m_ownerElement->renderer() ? m_ownerElement->renderer()->enclosingBox() : nullptr;
+    if (m_ownerElement->renderer())
+        return &m_ownerElement->renderer()->enclosingBox();
+    return nullptr;
 }
 
 void RenderScrollbar::setParent(ScrollView* parent)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to