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);
}