Changeset 228566 in webkit


Ignore:
Timestamp:
Feb 16, 2018 11:25:18 AM (6 years ago)
Author:
Alan Bujtas
Message:

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

Reviewed by Antti Koivisto.

This patch removes the last addChild() related mutation logic from the renderers.

No change in functionality.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::didInsertChild):
(WebCore::RenderElement::addChild): Deleted.

  • rendering/RenderElement.h:

(WebCore::RenderElement::isChildAllowed const):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::insertChildToRenderElement):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::insertChild):

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::insertChild):

Location:
trunk/Source/WebCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r228563 r228566  
     12018-02-16  Zalan Bujtas  <zalan@apple.com>
     2
     3        [RenderTreeBuilder] Move RenderElement::addChild() to RenderTreeBuilder
     4        https://bugs.webkit.org/show_bug.cgi?id=182878
     5        <rdar://problem/37608349>
     6
     7        Reviewed by Antti Koivisto.
     8
     9        This patch removes the last addChild() related mutation logic from the renderers.
     10
     11        No change in functionality.
     12
     13        * rendering/RenderElement.cpp:
     14        (WebCore::RenderElement::didInsertChild):
     15        (WebCore::RenderElement::addChild): Deleted.
     16        * rendering/RenderElement.h:
     17        (WebCore::RenderElement::isChildAllowed const):
     18        * rendering/updating/RenderTreeBuilder.cpp:
     19        (WebCore::RenderTreeBuilder::insertChild):
     20        (WebCore::RenderTreeBuilder::insertChildToRenderElement):
     21        * rendering/updating/RenderTreeBuilder.h:
     22        * rendering/updating/RenderTreeBuilderBlock.cpp:
     23        (WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation):
     24        * rendering/updating/RenderTreeBuilderInline.cpp:
     25        (WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation):
     26        * rendering/updating/RenderTreeBuilderSVG.cpp:
     27        (WebCore::RenderTreeBuilder::SVG::insertChild):
     28        * rendering/updating/RenderTreeBuilderTable.cpp:
     29        (WebCore::RenderTreeBuilder::Table::insertChild):
     30
    1312018-02-16  Matt Lewis  <jlewis3@apple.com>
    232
  • trunk/Source/WebCore/rendering/RenderElement.cpp

    r228464 r228566  
    457457}
    458458
    459 void RenderElement::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
    460 {
    461     auto& child = *newChild;
    462     builder.insertChildToRenderElement(*this, WTFMove(newChild), beforeChild);
    463 
     459void RenderElement::didInsertChild(RenderObject& child, RenderObject*)
     460{
    464461    if (is<RenderText>(child))
    465462        downcast<RenderText>(child).styleDidChange(StyleDifferenceEqual, nullptr);
  • trunk/Source/WebCore/rendering/RenderElement.h

    r228464 r228566  
    8888
    8989    virtual bool isChildAllowed(const RenderObject&, const RenderStyle&) const { return true; }
    90     virtual void addChild(RenderTreeBuilder&, RenderPtr<RenderObject>, RenderObject* beforeChild);
    9190    virtual void addChildIgnoringContinuation(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = nullptr);
    9291    void removeAndDestroyChild(RenderTreeBuilder&, RenderObject&);
     92    void didInsertChild(RenderObject& child, RenderObject* beforeChild);
    9393
    9494    // The following functions are used when the render tree hierarchy changes to make sure layers get
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

    r228559 r228566  
    143143    auto insertRecursiveIfNeeded = [&](RenderElement& parentCandidate) {
    144144        if (&parent == &parentCandidate) {
    145             parent.addChild(*this, WTFMove(child), beforeChild);
     145            insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    146146            return;
    147147        }
     
    256256    }
    257257
    258     parent.addChild(*this, WTFMove(child), beforeChild);
     258    insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    259259}
    260260
     
    321321        return;
    322322    }
    323     parent.RenderElement::insertChildInternal(WTFMove(child), beforeChild);
     323    auto& newChild = *child.get();
     324    parent.insertChildInternal(WTFMove(child), beforeChild);
     325    parent.didInsertChild(newChild, beforeChild);
    324326}
    325327
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h

    r228559 r228566  
    6464
    6565    // These functions are temporary until after all block/inline/continuation code is moved over.
    66     void insertChildToRenderElement(RenderElement& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
    6766    void insertChildToRenderBlockIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
    6867    void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     
    9695
    9796    void insertChildToRenderGrid(RenderGrid& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
     97    void insertChildToRenderElement(RenderElement& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
    9898
    9999    FirstLetter& firstLetterBuilder() { return *m_firstLetterBuilder; }
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp

    r228550 r228566  
    224224            auto newBox = parent.createAnonymousBlock();
    225225            auto& box = *newBox;
    226             parent.RenderElement::addChild(m_builder, WTFMove(newBox), beforeChild);
     226            m_builder.insertChildToRenderElement(parent, WTFMove(newBox), beforeChild);
    227227            m_builder.insertChild(box, WTFMove(child));
    228228            return;
     
    232232    parent.invalidateLineLayoutPath();
    233233
    234     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     234    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    235235
    236236    if (madeBoxesNonInline && is<RenderBlock>(parent.parent()) && parent.isAnonymousBlock())
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp

    r228550 r228566  
    189189
    190190    auto& childToAdd = *child;
    191     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     191    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    192192    childToAdd.setNeedsLayoutAndPrefWidthsRecalc();
    193193}
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp

    r228559 r228566  
    4444{
    4545    auto& childToAdd = *child;
    46     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     46    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    4747    SVGResourcesCache::clientWasAddedToTree(childToAdd);
    4848}
     
    6161{
    6262    auto& childToAdd = *child;
    63     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     63    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    6464    SVGResourcesCache::clientWasAddedToTree(childToAdd);
    6565}
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp

    r228550 r228566  
    169169    auto& newChild = *child.get();
    170170    ASSERT(!beforeChild || is<RenderTableCell>(*beforeChild));
    171     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     171    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    172172    // FIXME: child should always be a RenderTableCell at this point.
    173173    if (is<RenderTableCell>(newChild))
     
    184184        parent.willInsertTableRow(downcast<RenderTableRow>(*child.get()), beforeChild);
    185185    ASSERT(!beforeChild || is<RenderTableRow>(*beforeChild));
    186     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     186    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    187187}
    188188
     
    198198        parent.willInsertTableColumn(downcast<RenderTableCol>(newChild), beforeChild);
    199199
    200     parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
     200    m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild);
    201201}
    202202
Note: See TracChangeset for help on using the changeset viewer.