Changeset 228566 in webkit
- Timestamp:
- Feb 16, 2018 11:25:18 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r228563 r228566 1 2018-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 1 31 2018-02-16 Matt Lewis <jlewis3@apple.com> 2 32 -
trunk/Source/WebCore/rendering/RenderElement.cpp
r228464 r228566 457 457 } 458 458 459 void RenderElement::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) 460 { 461 auto& child = *newChild; 462 builder.insertChildToRenderElement(*this, WTFMove(newChild), beforeChild); 463 459 void RenderElement::didInsertChild(RenderObject& child, RenderObject*) 460 { 464 461 if (is<RenderText>(child)) 465 462 downcast<RenderText>(child).styleDidChange(StyleDifferenceEqual, nullptr); -
trunk/Source/WebCore/rendering/RenderElement.h
r228464 r228566 88 88 89 89 virtual bool isChildAllowed(const RenderObject&, const RenderStyle&) const { return true; } 90 virtual void addChild(RenderTreeBuilder&, RenderPtr<RenderObject>, RenderObject* beforeChild);91 90 virtual void addChildIgnoringContinuation(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = nullptr); 92 91 void removeAndDestroyChild(RenderTreeBuilder&, RenderObject&); 92 void didInsertChild(RenderObject& child, RenderObject* beforeChild); 93 93 94 94 // 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 143 143 auto insertRecursiveIfNeeded = [&](RenderElement& parentCandidate) { 144 144 if (&parent == &parentCandidate) { 145 parent.addChild(*this, WTFMove(child), beforeChild);145 insertChildToRenderElement(parent, WTFMove(child), beforeChild); 146 146 return; 147 147 } … … 256 256 } 257 257 258 parent.addChild(*this, WTFMove(child), beforeChild);258 insertChildToRenderElement(parent, WTFMove(child), beforeChild); 259 259 } 260 260 … … 321 321 return; 322 322 } 323 parent.RenderElement::insertChildInternal(WTFMove(child), beforeChild); 323 auto& newChild = *child.get(); 324 parent.insertChildInternal(WTFMove(child), beforeChild); 325 parent.didInsertChild(newChild, beforeChild); 324 326 } 325 327 -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h
r228559 r228566 64 64 65 65 // 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);67 66 void insertChildToRenderBlockIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 68 67 void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); … … 96 95 97 96 void insertChildToRenderGrid(RenderGrid& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr); 97 void insertChildToRenderElement(RenderElement& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr); 98 98 99 99 FirstLetter& firstLetterBuilder() { return *m_firstLetterBuilder; } -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp
r228550 r228566 224 224 auto newBox = parent.createAnonymousBlock(); 225 225 auto& box = *newBox; 226 parent.RenderElement::addChild(m_builder, WTFMove(newBox), beforeChild);226 m_builder.insertChildToRenderElement(parent, WTFMove(newBox), beforeChild); 227 227 m_builder.insertChild(box, WTFMove(child)); 228 228 return; … … 232 232 parent.invalidateLineLayoutPath(); 233 233 234 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);234 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 235 235 236 236 if (madeBoxesNonInline && is<RenderBlock>(parent.parent()) && parent.isAnonymousBlock()) -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp
r228550 r228566 189 189 190 190 auto& childToAdd = *child; 191 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);191 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 192 192 childToAdd.setNeedsLayoutAndPrefWidthsRecalc(); 193 193 } -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp
r228559 r228566 44 44 { 45 45 auto& childToAdd = *child; 46 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);46 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 47 47 SVGResourcesCache::clientWasAddedToTree(childToAdd); 48 48 } … … 61 61 { 62 62 auto& childToAdd = *child; 63 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);63 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 64 64 SVGResourcesCache::clientWasAddedToTree(childToAdd); 65 65 } -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp
r228550 r228566 169 169 auto& newChild = *child.get(); 170 170 ASSERT(!beforeChild || is<RenderTableCell>(*beforeChild)); 171 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);171 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 172 172 // FIXME: child should always be a RenderTableCell at this point. 173 173 if (is<RenderTableCell>(newChild)) … … 184 184 parent.willInsertTableRow(downcast<RenderTableRow>(*child.get()), beforeChild); 185 185 ASSERT(!beforeChild || is<RenderTableRow>(*beforeChild)); 186 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);186 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 187 187 } 188 188 … … 198 198 parent.willInsertTableColumn(downcast<RenderTableCol>(newChild), beforeChild); 199 199 200 parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);200 m_builder.insertChildToRenderElement(parent, WTFMove(child), beforeChild); 201 201 } 202 202
Note: See TracChangeset
for help on using the changeset viewer.