Title: [228432] trunk/Source/WebCore
Revision
228432
Author
za...@apple.com
Date
2018-02-13 13:58:58 -0800 (Tue, 13 Feb 2018)

Log Message

[RenderTreeBuilder] Move RenderBlockFlow::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182739
<rdar://problem/37506542>

Reviewed by Antti Koivisto.

No change in functionality.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::takeChild): Deleted.
* rendering/RenderBlockFlow.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::takeChild):
(WebCore::RenderTreeBuilder::multiColumnRelativeWillBeRemoved): Deleted.
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::takeChild):
* rendering/updating/RenderTreeBuilderBlock.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (228431 => 228432)


--- trunk/Source/WebCore/ChangeLog	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/ChangeLog	2018-02-13 21:58:58 UTC (rev 228432)
@@ -1,3 +1,24 @@
+2018-02-13  Zalan Bujtas  <za...@apple.com>
+
+        [RenderTreeBuilder] Move RenderBlockFlow::takeChild() to RenderTreeBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=182739
+        <rdar://problem/37506542>
+
+        Reviewed by Antti Koivisto.
+
+        No change in functionality.
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::takeChild): Deleted.
+        * rendering/RenderBlockFlow.h:
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::takeChild):
+        (WebCore::RenderTreeBuilder::multiColumnRelativeWillBeRemoved): Deleted.
+        * rendering/updating/RenderTreeBuilder.h:
+        * rendering/updating/RenderTreeBuilderBlock.cpp:
+        (WebCore::RenderTreeBuilder::Block::takeChild):
+        * rendering/updating/RenderTreeBuilderBlock.h:
+
 2018-02-13  Don Olmstead  <don.olmst...@sony.com>
 
         [CMake] Make WebCore headers copies

Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (228431 => 228432)


--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2018-02-13 21:58:58 UTC (rev 228432)
@@ -3849,16 +3849,6 @@
     builder.insertChildToRenderBlockFlow(*this, WTFMove(newChild), beforeChild);
 }
 
-RenderPtr<RenderObject> RenderBlockFlow::takeChild(RenderTreeBuilder& builder, RenderObject& oldChild)
-{
-    if (!renderTreeBeingDestroyed()) {
-        auto* fragmentedFlow = multiColumnFlow();
-        if (fragmentedFlow && fragmentedFlow != &oldChild)
-            builder.multiColumnRelativeWillBeRemoved(*fragmentedFlow, oldChild);
-    }
-    return RenderBlock::takeChild(builder, oldChild);
-}
-
 void RenderBlockFlow::checkForPaginationLogicalHeightChange(bool& relayoutChildren, LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged)
 {
     // If we don't use columns or flow threads, then bail.

Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.h (228431 => 228432)


--- trunk/Source/WebCore/rendering/RenderBlockFlow.h	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.h	2018-02-13 21:58:58 UTC (rev 228432)
@@ -379,7 +379,6 @@
     bool hasNextPage(LayoutUnit logicalOffset, PageBoundaryRule = ExcludePageBoundary) const;
 
     void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
-    RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) override;
 
     void updateColumnProgressionFromStyle(RenderStyle&);
     void updateStylesForColumnChildren();

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228431 => 228432)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-13 21:58:58 UTC (rev 228432)
@@ -224,6 +224,9 @@
     if (is<RenderSVGRoot>(parent))
         return svgBuilder().takeChild(downcast<RenderSVGRoot>(parent), child);
 
+    if (is<RenderBlockFlow>(parent))
+        return blockBuilder().takeChild(downcast<RenderBlockFlow>(parent), child);
+
     return parent.takeChild(*this, child);
 }
 
@@ -451,11 +454,6 @@
     blockBuilder().dropAnonymousBoxChild(parent, child);
 }
 
-void RenderTreeBuilder::multiColumnRelativeWillBeRemoved(RenderMultiColumnFlow& flow, RenderObject& relative)
-{
-    multiColumnBuilder().multiColumnRelativeWillBeRemoved(flow, relative);
-}
-
 void RenderTreeBuilder::insertChildToRenderInline(RenderInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
     inlineBuilder().insertChild(parent, WTFMove(child), beforeChild);

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h (228431 => 228432)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-02-13 21:58:58 UTC (rev 228432)
@@ -89,7 +89,6 @@
     RenderObject* resolveMovedChildForMultiColumnFlow(RenderFragmentedFlow& enclosingFragmentedFlow, RenderObject* beforeChild);
     void removeFromParentAndDestroyCleaningUpAnonymousWrappers(RenderObject& child);
     void multiColumnDescendantInserted(RenderMultiColumnFlow&, RenderObject& newDescendant);
-    void multiColumnRelativeWillBeRemoved(RenderMultiColumnFlow&, RenderObject& relative);
     void dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child);
 
 private:

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp (228431 => 228432)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp	2018-02-13 21:58:58 UTC (rev 228432)
@@ -29,6 +29,7 @@
 #include "RenderButton.h"
 #include "RenderChildIterator.h"
 #include "RenderFullScreen.h"
+#include "RenderMultiColumnFlow.h"
 #include "RenderRuby.h"
 #include "RenderRubyRun.h"
 #include "RenderTextControl.h"
@@ -365,4 +366,14 @@
     child.deleteLines();
 }
 
+RenderPtr<RenderObject> RenderTreeBuilder::Block::takeChild(RenderBlockFlow& parent, RenderObject& child)
+{
+    if (!parent.renderTreeBeingDestroyed()) {
+        auto* fragmentedFlow = parent.multiColumnFlow();
+        if (fragmentedFlow && fragmentedFlow != &child)
+            m_builder.multiColumnBuilder().multiColumnRelativeWillBeRemoved(*fragmentedFlow, child);
+    }
+    return parent.RenderBlock::takeChild(m_builder, child);
 }
+
+}

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h (228431 => 228432)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h	2018-02-13 21:58:58 UTC (rev 228432)
@@ -37,6 +37,7 @@
     void insertChildIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
 
     RenderPtr<RenderObject> takeChild(RenderBlock& parent, RenderObject& oldChild);
+    RenderPtr<RenderObject> takeChild(RenderBlockFlow& parent, RenderObject& child);
 
     void dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child);
     void childBecameNonInline(RenderBlock& parent, RenderElement& child);

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp (228431 => 228432)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp	2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp	2018-02-13 21:58:58 UTC (rev 228432)
@@ -30,6 +30,7 @@
 #include "RenderRubyBase.h"
 #include "RenderRubyRun.h"
 #include "RenderTreeBuilder.h"
+#include "RenderTreeBuilderBlock.h"
 
 namespace WebCore {
 
@@ -214,7 +215,8 @@
             // in order to avoid automatic removal of the ruby run in case there is no
             // other child besides the old ruby text.
             parent.addChild(m_builder, WTFMove(child), beforeChild);
-            auto takenBeforeChild = parent.RenderBlockFlow::takeChild(m_builder, *beforeChild);
+            auto takenBeforeChild = m_builder.blockBuilder().takeChild(parent, *beforeChild);
+
             m_builder.insertChild(*newRun, WTFMove(takenBeforeChild));
             return;
         }
@@ -404,7 +406,7 @@
 #ifndef ASSERT_DISABLED
         ASSERT(isRubyChildForNormalRemoval(child));
 #endif
-        return parent.RenderBlockFlow::takeChild(m_builder, child);
+        return m_builder.blockBuilder().takeChild(parent, child);
     }
     // If the child's parent is an anoymous block (must be generated :before/:after content)
     // just use the block's remove method.
@@ -442,13 +444,13 @@
         }
     }
 
-    auto takenChild = parent.RenderBlockFlow::takeChild(m_builder, child);
+    auto takenChild = m_builder.blockBuilder().takeChild(parent, child);
 
     if (!parent.beingDestroyed() && !parent.renderTreeBeingDestroyed()) {
         // Check if our base (if any) is now empty. If so, destroy it.
         RenderBlock* base = parent.rubyBase();
         if (base && !base->firstChild()) {
-            auto takenBase = parent.RenderBlockFlow::takeChild(m_builder, *base);
+            auto takenBase = m_builder.blockBuilder().takeChild(parent, *base);
             base->deleteLines();
         }
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to