Title: [228530] trunk/Source/WebCore
Revision
228530
Author
[email protected]
Date
2018-02-15 13:06:53 -0800 (Thu, 15 Feb 2018)

Log Message

[RenderTreeBuilder] Move RenderTableSection::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182835
<rdar://problem/37579191>

Reviewed by Antti Koivisto.

No change in functionality.

* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::willInsertTableRow):
(WebCore::RenderTableSection::addChild): Deleted.
* rendering/RenderTableSection.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild): Leftover from r228529.
(WebCore::RenderTreeBuilder::insertChildToRenderTable): Deleted. Leftover from r228529.
(WebCore::RenderTreeBuilder::insertChildToRenderTableSection): Deleted.
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::insertChild):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (228529 => 228530)


--- trunk/Source/WebCore/ChangeLog	2018-02-15 20:01:58 UTC (rev 228529)
+++ trunk/Source/WebCore/ChangeLog	2018-02-15 21:06:53 UTC (rev 228530)
@@ -1,5 +1,27 @@
 2018-02-15  Zalan Bujtas  <[email protected]>
 
+        [RenderTreeBuilder] Move RenderTableSection::addChild() to RenderTreeBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=182835
+        <rdar://problem/37579191>
+
+        Reviewed by Antti Koivisto.
+
+        No change in functionality.
+
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::willInsertTableRow):
+        (WebCore::RenderTableSection::addChild): Deleted.
+        * rendering/RenderTableSection.h:
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::insertChild): Leftover from r228529.
+        (WebCore::RenderTreeBuilder::insertChildToRenderTable): Deleted. Leftover from r228529.
+        (WebCore::RenderTreeBuilder::insertChildToRenderTableSection): Deleted.
+        * rendering/updating/RenderTreeBuilder.h:
+        * rendering/updating/RenderTreeBuilderTable.cpp:
+        (WebCore::RenderTreeBuilder::Table::insertChild):
+
+2018-02-15  Zalan Bujtas  <[email protected]>
+
         [RenderTreeBuilder] Move RenderTable::addChild() to RenderTreeBuilder
         https://bugs.webkit.org/show_bug.cgi?id=182832
         <rdar://problem/37576362>

Modified: trunk/Source/WebCore/rendering/RenderTableSection.cpp (228529 => 228530)


--- trunk/Source/WebCore/rendering/RenderTableSection.cpp	2018-02-15 20:01:58 UTC (rev 228529)
+++ trunk/Source/WebCore/rendering/RenderTableSection.cpp	2018-02-15 21:06:53 UTC (rev 228530)
@@ -121,7 +121,7 @@
     setNeedsCellRecalc();
 }
 
-void RenderTableSection::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+void RenderTableSection::willInsertTableRow(RenderTableRow& child, RenderObject* beforeChild)
 {
     if (beforeChild)
         setNeedsCellRecalc();
@@ -132,13 +132,11 @@
 
     ensureRows(m_cRow);
 
-    RenderTableRow& row = downcast<RenderTableRow>(*child);
-    m_grid[insertionRow].rowRenderer = &row;
-    row.setRowIndex(insertionRow);
+    m_grid[insertionRow].rowRenderer = &child;
+    child.setRowIndex(insertionRow);
 
     if (!beforeChild)
         setRowLogicalHeightToRowStyleLogicalHeightIfNotRelative(m_grid[insertionRow]);
-    builder.insertChildToRenderTableSection(*this, WTFMove(child), beforeChild);
 }
 
 void RenderTableSection::ensureRows(unsigned numRows)

Modified: trunk/Source/WebCore/rendering/RenderTableSection.h (228529 => 228530)


--- trunk/Source/WebCore/rendering/RenderTableSection.h	2018-02-15 20:01:58 UTC (rev 228529)
+++ trunk/Source/WebCore/rendering/RenderTableSection.h	2018-02-15 21:06:53 UTC (rev 228530)
@@ -62,8 +62,6 @@
     RenderTableRow* firstRow() const;
     RenderTableRow* lastRow() const;
 
-    void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = 0) override;
-
     std::optional<int> firstLineBaseline() const override;
 
     void addCell(RenderTableCell*, RenderTableRow* row);
@@ -149,6 +147,8 @@
     
     void paint(PaintInfo&, const LayoutPoint&) override;
 
+    void willInsertTableRow(RenderTableRow& child, RenderObject* beforeChild);
+
 protected:
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
 

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228529 => 228530)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-15 20:01:58 UTC (rev 228529)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-15 21:06:53 UTC (rev 228530)
@@ -161,13 +161,18 @@
     }
 
     if (is<RenderTableSection>(parent)) {
-        insertRecursiveIfNeeded(tableBuilder().findOrCreateParentForChild(downcast<RenderTableSection>(parent), *child, beforeChild));
+        auto& parentCandidate = tableBuilder().findOrCreateParentForChild(downcast<RenderTableSection>(parent), *child, beforeChild);
+        if (&parent == &parentCandidate) {
+            tableBuilder().insertChild(downcast<RenderTableSection>(parent), WTFMove(child), beforeChild);
+            return;
+        }
+        insertRecursiveIfNeeded(parentCandidate);
         return;
     }
 
     if (is<RenderTable>(parent)) {
         auto& parentCandidate = tableBuilder().findOrCreateParentForChild(downcast<RenderTable>(parent), *child, beforeChild);
-        if (is<RenderTable>(parentCandidate) && &parentCandidate == &parent) {
+        if (&parentCandidate == &parent) {
             tableBuilder().insertChild(downcast<RenderTable>(parentCandidate), WTFMove(child), beforeChild);
             return;
         }
@@ -503,16 +508,6 @@
     inlineBuilder().insertChildIgnoringContinuation(parent, WTFMove(child), beforeChild);
 }
 
-void RenderTreeBuilder::insertChildToRenderTable(RenderTable& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
-{
-    tableBuilder().insertChild(parent, WTFMove(child), beforeChild);
-}
-
-void RenderTreeBuilder::insertChildToRenderTableSection(RenderTableSection& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
-{
-    tableBuilder().insertChild(parent, WTFMove(child), beforeChild);
-}
-
 void RenderTreeBuilder::insertChildToRenderTableRow(RenderTableRow& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
     tableBuilder().insertChild(parent, WTFMove(child), beforeChild);

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h (228529 => 228530)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-02-15 20:01:58 UTC (rev 228529)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-02-15 21:06:53 UTC (rev 228530)
@@ -68,8 +68,6 @@
     void insertChildToRenderBlockIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
-    void insertChildToRenderTable(RenderTable& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
-    void insertChildToRenderTableSection(RenderTableSection& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
     void insertChildToRenderTableRow(RenderTableRow& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
 
     RenderPtr<RenderObject> takeChildFromRenderElement(RenderElement& parent, RenderObject& child) WARN_UNUSED_RETURN;

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp (228529 => 228530)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp	2018-02-15 20:01:58 UTC (rev 228529)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp	2018-02-15 21:06:53 UTC (rev 228530)
@@ -175,6 +175,9 @@
     if (beforeChild && beforeChild->parent() != &parent)
         beforeChild = m_builder.splitAnonymousBoxesAroundChild(parent, beforeChild);
 
+    // FIXME: child should always be a RenderTableRow at this point.
+    if (is<RenderTableRow>(*child.get()))
+        parent.willInsertTableRow(downcast<RenderTableRow>(*child.get()), beforeChild);
     ASSERT(!beforeChild || is<RenderTableRow>(*beforeChild));
     parent.RenderBox::addChild(m_builder, WTFMove(child), beforeChild);
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to