Title: [159391] trunk/Source/WebCore
Revision
159391
Author
wei...@apple.com
Date
2013-11-17 17:12:17 -0800 (Sun, 17 Nov 2013)

Log Message

LayoutStateMaintainer should use references where possible
https://bugs.webkit.org/show_bug.cgi?id=124471

Reviewed by Dan Bernstein.

* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::layout):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::pushFlowThreadLayoutState):
* rendering/RenderFlowThread.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::layout):
* rendering/RenderView.cpp:
(WebCore::RenderView::pushLayoutState):
(WebCore::RenderView::pushLayoutStateForCurrentFlowThread):
* rendering/RenderView.h:
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (159390 => 159391)


--- trunk/Source/WebCore/ChangeLog	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/ChangeLog	2013-11-18 01:12:17 UTC (rev 159391)
@@ -1,3 +1,52 @@
+2013-11-17  Sam Weinig  <s...@webkit.org>
+
+        LayoutStateMaintainer should use references where possible
+        https://bugs.webkit.org/show_bug.cgi?id=124471
+
+        Reviewed by Dan Bernstein.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::layout):
+        * rendering/LayoutState.cpp:
+        (WebCore::LayoutState::LayoutState):
+        * rendering/LayoutState.h:
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::simplifiedLayout):
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::layoutBlock):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::layout):
+        * rendering/RenderDeprecatedFlexibleBox.cpp:
+        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::RenderEmbeddedObject::layout):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::layoutBlock):
+        * rendering/RenderFlowThread.cpp:
+        (WebCore::RenderFlowThread::pushFlowThreadLayoutState):
+        * rendering/RenderFlowThread.h:
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::layoutBlock):
+        * rendering/RenderMedia.cpp:
+        (WebCore::RenderMedia::layout):
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::layout):
+        * rendering/RenderTableRow.cpp:
+        (WebCore::RenderTableRow::layout):
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::calcRowLogicalHeight):
+        (WebCore::RenderTableSection::layout):
+        (WebCore::RenderTableSection::layoutRows):
+        * rendering/RenderTextTrackCue.cpp:
+        (WebCore::RenderTextTrackCue::layout):
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::pushLayoutState):
+        (WebCore::RenderView::pushLayoutStateForCurrentFlowThread):
+        * rendering/RenderView.h:
+        (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
+        (WebCore::LayoutStateMaintainer::push):
+        (WebCore::LayoutStateMaintainer::pop):
+
 2013-11-16  Alexey Proskuryakov  <a...@apple.com>
 
         Use uint8_t vectors for WebCrypto data

Modified: trunk/Source/WebCore/page/FrameView.cpp (159390 => 159391)


--- trunk/Source/WebCore/page/FrameView.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/page/FrameView.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -1246,7 +1246,7 @@
         bool disableLayoutState = false;
         if (subtree) {
             disableLayoutState = root->view().shouldDisableLayoutStateForSubtree(root);
-            root->view().pushLayoutState(root);
+            root->view().pushLayoutState(*root);
         }
         LayoutStateDisabler layoutStateDisabler(disableLayoutState ? &root->view() : 0);
 
@@ -1278,7 +1278,7 @@
         ASSERT(m_layoutPhase == InLayout);
 
         if (subtree)
-            root->view().popLayoutState(root);
+            root->view().popLayoutState(*root);
 
         m_layoutRoot = 0;
 

Modified: trunk/Source/WebCore/rendering/LayoutState.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/LayoutState.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/LayoutState.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -136,7 +136,7 @@
     // FIXME: <http://bugs.webkit.org/show_bug.cgi?id=13443> Apply control clip if present.
 }
 
-LayoutState::LayoutState(RenderObject* root)
+LayoutState::LayoutState(RenderObject& root)
     : m_clipped(false)
     , m_isPaginated(false)
     , m_pageLogicalHeightChanged(false)
@@ -151,10 +151,10 @@
 #endif
     , m_pageLogicalHeight(0)
 #ifndef NDEBUG
-    , m_renderer(root)
+    , m_renderer(&root)
 #endif
 {
-    RenderElement* container = root->container();
+    RenderElement* container = root.container();
     FloatPoint absContentPoint = container->localToAbsolute(FloatPoint(), UseTransforms);
     m_paintOffset = LayoutSize(absContentPoint.x(), absContentPoint.y());
 

Modified: trunk/Source/WebCore/rendering/LayoutState.h (159390 => 159391)


--- trunk/Source/WebCore/rendering/LayoutState.h	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/LayoutState.h	2013-11-18 01:12:17 UTC (rev 159391)
@@ -65,7 +65,7 @@
     }
 
     LayoutState(std::unique_ptr<LayoutState> state, RenderBox*, const LayoutSize& offset, LayoutUnit pageHeight, bool pageHeightChanged, ColumnInfo*);
-    explicit LayoutState(RenderObject*);
+    explicit LayoutState(RenderObject&);
 
     void clearPaginationInformation();
     bool isPaginatingColumns() const { return m_columnInfo && m_columnInfo->paginationUnit() == ColumnInfo::Column; }

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -2003,7 +2003,7 @@
     if ((!posChildNeedsLayout() && !needsSimplifiedNormalFlowLayout()) || normalChildNeedsLayout() || selfNeedsLayout())
         return false;
 
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
     
     if (needsPositionedMovementLayout() && !tryLayoutDoingPositionedMovementOnly())
         return false;

Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -322,7 +322,7 @@
     checkForPaginationLogicalHeightChange(pageLogicalHeight, pageLogicalHeightChanged, hasSpecifiedPageLogicalHeight);
 
     const RenderStyle& styleToUse = style();
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || styleToUse.isFlippedBlocksWritingMode(), pageLogicalHeight, pageLogicalHeightChanged, columnInfo());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasColumns() || hasTransform() || hasReflection() || styleToUse.isFlippedBlocksWritingMode(), pageLogicalHeight, pageLogicalHeightChanged, columnInfo());
 
     prepareShapesAndPaginationBeforeBlockLayout(relayoutChildren);
     if (!relayoutChildren)

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -468,7 +468,7 @@
         return;
     }
 
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), style().isFlippedBlocksWritingMode());
     while (child) {
         if (child->needsLayout())
             toRenderElement(child)->layout();

Modified: trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -283,7 +283,7 @@
         return;
 
     LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     prepareShapesAndPaginationBeforeBlockLayout(relayoutChildren);
 

Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -513,7 +513,7 @@
     // When calling layout() on a child node, a parent must either push a LayoutStateMaintainter, or
     // instantiate LayoutStateDisabler. Since using a LayoutStateMaintainer is slightly more efficient,
     // and this method will be called many times per second during playback, use a LayoutStateMaintainer:
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
     
     childBox->setLocation(LayoutPoint(borderLeft(), borderTop()) + LayoutSize(paddingLeft(), paddingTop()));
     childBox->style().setHeight(Length(newSize.height(), Fixed));

Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -280,7 +280,7 @@
     LayoutUnit previousHeight = logicalHeight();
     setLogicalHeight(borderAndPaddingLogicalHeight() + scrollbarLogicalHeight());
 
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     prepareShapesAndPaginationBeforeBlockLayout(relayoutChildren);
 

Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -1213,7 +1213,7 @@
     return currentObject->isBox() ? toRenderBox(currentObject) : 0;
 }
 
-void RenderFlowThread::pushFlowThreadLayoutState(const RenderObject* object)
+void RenderFlowThread::pushFlowThreadLayoutState(const RenderObject& object)
 {
     if (const RenderBox* currentBoxDescendant = currentActiveRenderBox()) {
         LayoutState* layoutState = currentBoxDescendant->view().layoutState();
@@ -1224,7 +1224,7 @@
         }
     }
 
-    m_activeObjectsStack.add(object);
+    m_activeObjectsStack.add(&object);
 }
 
 void RenderFlowThread::popFlowThreadLayoutState()

Modified: trunk/Source/WebCore/rendering/RenderFlowThread.h (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderFlowThread.h	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.h	2013-11-18 01:12:17 UTC (rev 159391)
@@ -200,7 +200,7 @@
 #endif
     virtual bool collectsGraphicsLayersUnderRegions() const;
 
-    void pushFlowThreadLayoutState(const RenderObject*);
+    void pushFlowThreadLayoutState(const RenderObject&);
     void popFlowThreadLayoutState();
     LayoutUnit offsetFromLogicalTopOfFirstRegion(const RenderBlock*) const;
     void clearRenderBoxRegionInfoAndCustomStyle(const RenderBox*, const RenderRegion*, const RenderRegion*, const RenderRegion*, const RenderRegion*);

Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderGrid.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -163,7 +163,7 @@
     // FIXME: Much of this method is boiler plate that matches RenderBox::layoutBlock and Render*FlexibleBox::layoutBlock.
     // It would be nice to refactor some of the duplicate code.
     LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     prepareShapesAndPaginationBeforeBlockLayout(relayoutChildren);
 

Modified: trunk/Source/WebCore/rendering/RenderMedia.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderMedia.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderMedia.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -78,7 +78,7 @@
     // When calling layout() on a child node, a parent must either push a LayoutStateMaintainter, or 
     // instantiate LayoutStateDisabler. Since using a LayoutStateMaintainer is slightly more efficient,
     // and this method will be called many times per second during playback, use a LayoutStateMaintainer:
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     controlsRenderer->setLocation(LayoutPoint(borderLeft(), borderTop()) + LayoutSize(paddingLeft(), paddingTop()));
     controlsRenderer->style().setHeight(Length(newSize.height(), Fixed));

Modified: trunk/Source/WebCore/rendering/RenderTable.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderTable.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderTable.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -423,7 +423,7 @@
     recalcBordersInRowDirection();
         
     LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     setLogicalHeight(0);
     

Modified: trunk/Source/WebCore/rendering/RenderTableRow.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderTableRow.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderTableRow.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -163,7 +163,7 @@
     ASSERT(needsLayout());
 
     // Table rows do not add translation.
-    LayoutStateMaintainer statePusher(&view(), this, LayoutSize(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, LayoutSize(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     bool paginated = view().layoutState()->isPaginated();
                 

Modified: trunk/Source/WebCore/rendering/RenderTableSection.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderTableSection.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderTableSection.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -278,7 +278,7 @@
 
     int spacing = table()->vBorderSpacing();
 
-    LayoutStateMaintainer statePusher(&view());
+    LayoutStateMaintainer statePusher(view());
 
     m_rowPos.resize(m_grid.size() + 1);
     m_rowPos[0] = spacing;
@@ -332,7 +332,7 @@
                     if (!statePusher.didPush()) {
                         // Technically, we should also push state for the row, but since
                         // rows don't push a coordinate transform, that's not necessary.
-                        statePusher.push(this, locationOffset());
+                        statePusher.push(*this, locationOffset());
                     }
                     cell->clearIntrinsicPadding();
                     cell->clearOverrideSize();
@@ -385,7 +385,7 @@
     // can be called in a loop (e.g during parsing). Doing it now ensures we have a stable-enough structure.
     m_grid.shrinkToFit();
 
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
 
     const Vector<int>& columnPos = table()->columnPositions();
 
@@ -530,7 +530,7 @@
     int vspacing = table()->vBorderSpacing();
     unsigned nEffCols = table()->numEffCols();
 
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || style().isFlippedBlocksWritingMode());
 
     for (unsigned r = 0; r < totalRows; r++) {
         // Set the row's x/y position and width/height.

Modified: trunk/Source/WebCore/rendering/RenderTextTrackCue.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderTextTrackCue.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderTextTrackCue.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -48,7 +48,7 @@
     StackStats::LayoutCheckPoint layoutCheckPoint;
     RenderBlockFlow::layout();
 
-    LayoutStateMaintainer statePusher(&view(), this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
+    LayoutStateMaintainer statePusher(view(), *this, locationOffset(), hasTransform() || hasReflection() || style().isFlippedBlocksWritingMode());
     
     if (m_cue->cueType()== TextTrackCue::WebVTT) {
         if (m_cue->snapToLines())

Modified: trunk/Source/WebCore/rendering/RenderView.cpp (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderView.cpp	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderView.cpp	2013-11-18 01:12:17 UTC (rev 159391)
@@ -1028,7 +1028,7 @@
     return frameView().frame().pageZoomFactor();
 }
 
-void RenderView::pushLayoutState(RenderObject* root)
+void RenderView::pushLayoutState(RenderObject& root)
 {
     ASSERT(m_layoutStateDisableCount == 0);
     ASSERT(m_layoutState == 0);
@@ -1155,7 +1155,7 @@
     return *m_flowThreadController;
 }
 
-void RenderView::pushLayoutStateForCurrentFlowThread(const RenderObject* object)
+void RenderView::pushLayoutStateForCurrentFlowThread(const RenderObject& object)
 {
     if (!m_flowThreadController)
         return;

Modified: trunk/Source/WebCore/rendering/RenderView.h (159390 => 159391)


--- trunk/Source/WebCore/rendering/RenderView.h	2013-11-17 21:41:46 UTC (rev 159390)
+++ trunk/Source/WebCore/rendering/RenderView.h	2013-11-18 01:12:17 UTC (rev 159391)
@@ -142,8 +142,8 @@
     bool doingFullRepaint() const { return frameView().needsFullRepaint(); }
 
     // Subtree push/pop
-    void pushLayoutState(RenderObject*);
-    void popLayoutState(RenderObject*) { return popLayoutState(); } // Just doing this to keep popLayoutState() private and to make the subtree calls symmetrical.
+    void pushLayoutState(RenderObject&);
+    void popLayoutState(RenderObject&) { return popLayoutState(); } // Just doing this to keep popLayoutState() private and to make the subtree calls symmetrical.
 
     bool shouldDisableLayoutStateForSubtree(RenderObject*) const;
 
@@ -249,18 +249,18 @@
     bool shouldRepaint(const LayoutRect&) const;
 
     // These functions may only be accessed by LayoutStateMaintainer.
-    bool pushLayoutState(RenderBox* renderer, const LayoutSize& offset, LayoutUnit pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0)
+    bool pushLayoutState(RenderBox& renderer, const LayoutSize& offset, LayoutUnit pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = nullptr)
     {
         // We push LayoutState even if layoutState is disabled because it stores layoutDelta too.
-        if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer->hasColumns() || renderer->flowThreadContainingBlock()
-            || m_layoutState->lineGrid() || (renderer->style().lineGrid() != RenderStyle::initialLineGrid() && renderer->isRenderBlockFlow())
+        if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer.hasColumns() || renderer.flowThreadContainingBlock()
+            || m_layoutState->lineGrid() || (renderer.style().lineGrid() != RenderStyle::initialLineGrid() && renderer.isRenderBlockFlow())
 #if ENABLE(CSS_SHAPES)
-            || (renderer->isRenderBlock() && toRenderBlock(renderer)->shapeInsideInfo())
-            || (m_layoutState->shapeInsideInfo() && renderer->isRenderBlock() && !toRenderBlock(renderer)->allowsShapeInsideInfoSharing())
+            || (renderer.isRenderBlock() && toRenderBlock(renderer).shapeInsideInfo())
+            || (m_layoutState->shapeInsideInfo() && renderer.isRenderBlock() && !toRenderBlock(renderer).allowsShapeInsideInfoSharing())
 #endif
             ) {
             pushLayoutStateForCurrentFlowThread(renderer);
-            m_layoutState = std::make_unique<LayoutState>(std::move(m_layoutState), renderer, offset, pageHeight, pageHeightChanged, colInfo);
+            m_layoutState = std::make_unique<LayoutState>(std::move(m_layoutState), &renderer, offset, pageHeight, pageHeightChanged, colInfo);
             return true;
         }
         return false;
@@ -287,7 +287,7 @@
     void checkLayoutState(const LayoutState&);
 #endif
 
-    void pushLayoutStateForCurrentFlowThread(const RenderObject*);
+    void pushLayoutStateForCurrentFlowThread(const RenderObject&);
     void popLayoutStateForCurrentFlowThread();
     
     friend class LayoutStateMaintainer;
@@ -354,8 +354,8 @@
 class LayoutStateMaintainer {
     WTF_MAKE_NONCOPYABLE(LayoutStateMaintainer);
 public:
-    // ctor to push now
-    LayoutStateMaintainer(RenderView* view, RenderBox* root, LayoutSize offset, bool disableState = false, LayoutUnit pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0)
+    // Constructor to push now.
+    explicit LayoutStateMaintainer(RenderView& view, RenderBox& root, LayoutSize offset, bool disableState = false, LayoutUnit pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = nullptr)
         : m_view(view)
         , m_disabled(disableState)
         , m_didStart(false)
@@ -364,9 +364,9 @@
     {
         push(root, offset, pageHeight, pageHeightChanged, colInfo);
     }
-    
-    // ctor to maybe push later
-    LayoutStateMaintainer(RenderView* view)
+
+    // Constructor to maybe push later.
+    explicit LayoutStateMaintainer(RenderView& view)
         : m_view(view)
         , m_disabled(false)
         , m_didStart(false)
@@ -380,13 +380,13 @@
         ASSERT(m_didStart == m_didEnd);   // if this fires, it means that someone did a push(), but forgot to pop().
     }
 
-    void push(RenderBox* root, LayoutSize offset, LayoutUnit pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0)
+    void push(RenderBox& root, LayoutSize offset, LayoutUnit pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = nullptr)
     {
         ASSERT(!m_didStart);
         // We push state even if disabled, because we still need to store layoutDelta
-        m_didCreateLayoutState = m_view->pushLayoutState(root, offset, pageHeight, pageHeightChanged, colInfo);
+        m_didCreateLayoutState = m_view.pushLayoutState(root, offset, pageHeight, pageHeightChanged, colInfo);
         if (m_disabled && m_didCreateLayoutState)
-            m_view->disableLayoutState();
+            m_view.disableLayoutState();
         m_didStart = true;
     }
 
@@ -395,9 +395,9 @@
         if (m_didStart) {
             ASSERT(!m_didEnd);
             if (m_didCreateLayoutState) {
-                m_view->popLayoutState();
+                m_view.popLayoutState();
                 if (m_disabled)
-                    m_view->enableLayoutState();
+                    m_view.enableLayoutState();
             }
             
             m_didEnd = true;
@@ -407,7 +407,7 @@
     bool didPush() const { return m_didStart; }
 
 private:
-    RenderView* m_view;
+    RenderView& m_view;
     bool m_disabled : 1;        // true if the offset and clip part of layoutState is disabled
     bool m_didStart : 1;        // true if we did a push or disable
     bool m_didEnd : 1;          // true if we popped or re-enabled
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to