Changeset 228737 in webkit
- Timestamp:
- Feb 19, 2018 11:26:56 PM (6 years ago)
- Location:
- releases/WebKitGTK/webkit-2.20/Source/WebCore
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog
r228735 r228737 1 2018-02-12 Zalan Bujtas <zalan@apple.com> 2 3 [RenderTreeBuilder] Introduce RenderTreebuilder::takeChild 4 https://bugs.webkit.org/show_bug.cgi?id=182707 5 <rdar://problem/37473433> 6 7 Reviewed by Antti Koivisto. 8 9 All takeChild calls should go through RenderTreeBuilder::takeChild from now on. 10 This patch also moves the Ruby related takeChild calls to RenderTreeBuilder. 11 12 No change in functionality. 13 14 * rendering/RenderButton.cpp: 15 (WebCore::RenderButton::takeChild): 16 * rendering/RenderElement.cpp: 17 (WebCore::RenderElement::removeAndDestroyChild): 18 * rendering/RenderFullScreen.cpp: 19 (WebCore::RenderFullScreen::wrapExistingRenderer): 20 (WebCore::RenderFullScreen::unwrapRenderer): 21 * rendering/RenderMenuList.cpp: 22 (RenderMenuList::takeChild): 23 * rendering/RenderRuby.cpp: 24 (WebCore::RenderRubyAsInline::takeChild): Deleted. 25 (WebCore::RenderRubyAsBlock::takeChild): Deleted. 26 * rendering/RenderRuby.h: 27 * rendering/RenderRubyRun.cpp: 28 (WebCore::RenderRubyRun::takeChild): Deleted. 29 * rendering/RenderRubyRun.h: 30 * rendering/updating/RenderTreeBuilder.cpp: 31 (WebCore::RenderTreeBuilder::takeChild): 32 (WebCore::RenderTreeBuilder::takeChildFromRenderRubyAsInline): Deleted. 33 (WebCore::RenderTreeBuilder::takeChildFromRenderRubyAsBlock): Deleted. 34 (WebCore::RenderTreeBuilder::takeChildFromRenderRubyRun): Deleted. 35 * rendering/updating/RenderTreeBuilder.h: 36 * rendering/updating/RenderTreeBuilderFirstLetter.cpp: 37 (WebCore::RenderTreeBuilder::FirstLetter::updateStyle): 38 * rendering/updating/RenderTreeBuilderList.cpp: 39 (WebCore::RenderTreeBuilder::List::updateItemMarker): 40 * rendering/updating/RenderTreeBuilderMultiColumn.cpp: 41 (WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow): 42 (WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow): 43 (WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant): 44 * rendering/updating/RenderTreeBuilderRuby.cpp: 45 (WebCore::RenderTreeBuilder::Ruby::takeChild): 46 * rendering/updating/RenderTreeBuilderTable.cpp: 47 (WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows): 48 1 49 2018-02-12 Zalan Bujtas <zalan@apple.com> 2 50 -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderButton.cpp
r228686 r228737 80 80 return RenderFlexibleBox::takeChild(builder, oldChild); 81 81 } 82 return m_inner->takeChild(builder, oldChild);82 return builder.takeChild(*m_inner, oldChild); 83 83 } 84 84 -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp
r228686 r228737 498 498 } 499 499 } 500 auto toDestroy = takeChild(builder, oldChild);500 auto toDestroy = builder.takeChild(*this, oldChild); 501 501 } 502 502 -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.cpp
r228686 r228737 133 133 builder.insertChild(parent, WTFMove(newFullscreenRenderer), &renderer); 134 134 135 auto toMove = parent.takeChild(builder, renderer);135 auto toMove = builder.takeChild(parent, renderer); 136 136 137 137 // Always just do a full layout to ensure that line boxes get deleted properly. … … 179 179 if (is<RenderBox>(*child)) 180 180 downcast<RenderBox>(*child).clearOverrideSize(); 181 auto childToMove = child->parent()->takeChild(builder, *child);181 auto childToMove = builder.takeChild(*child->parent(), *child); 182 182 builder.insertChild(*parent(), WTFMove(childToMove), this); 183 183 parent()->setNeedsLayoutAndPrefWidthsRecalc(); -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.cpp
r228686 r228737 177 177 if (!m_innerBlock || &oldChild == m_innerBlock) 178 178 return RenderFlexibleBox::takeChild(builder, oldChild); 179 return m_innerBlock->takeChild(builder, oldChild);179 return builder.takeChild(*m_innerBlock, oldChild); 180 180 } 181 181 -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRuby.cpp
r228687 r228737 61 61 } 62 62 63 RenderPtr<RenderObject> RenderRubyAsInline::takeChild(RenderTreeBuilder& builder, RenderObject& child)64 {65 return builder.takeChildFromRenderRubyAsInline(*this, child);66 }67 68 63 //=== ruby as block object === 69 64 … … 81 76 } 82 77 83 RenderPtr<RenderObject> RenderRubyAsBlock::takeChild(RenderTreeBuilder& builder, RenderObject& child)84 {85 return builder.takeChildFromRenderRubyAsBlock(*this, child);86 }87 88 78 } // namespace WebCore -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRuby.h
r228650 r228737 57 57 virtual ~RenderRubyAsInline(); 58 58 59 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject& child) override;60 61 59 protected: 62 60 void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; … … 77 75 Element& element() const { return downcast<Element>(nodeForNonAnonymous()); } 78 76 79 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject& child) override;80 81 77 protected: 82 78 void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRubyRun.cpp
r228688 r228737 98 98 } 99 99 100 RenderPtr<RenderObject> RenderRubyRun::takeChild(RenderTreeBuilder& builder, RenderObject& child)101 {102 return builder.takeChildFromRenderRubyRun(*this, child);103 }104 105 100 RenderPtr<RenderRubyBase> RenderRubyRun::createRubyBase() const 106 101 { -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRubyRun.h
r228650 r228737 57 57 58 58 bool isChildAllowed(const RenderObject&, const RenderStyle&) const override; 59 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) override;60 59 61 60 RenderBlock* firstLineBlock() const override; -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
r228735 r228737 188 188 } 189 189 190 RenderPtr<RenderObject> RenderTreeBuilder::takeChild(RenderElement& parent, RenderObject& child) 191 { 192 if (is<RenderRubyAsInline>(parent)) 193 return rubyBuilder().takeChild(downcast<RenderRubyAsInline>(parent), child); 194 195 if (is<RenderRubyAsBlock>(parent)) 196 return rubyBuilder().takeChild(downcast<RenderRubyAsBlock>(parent), child); 197 198 if (is<RenderRubyRun>(parent)) 199 return rubyBuilder().takeChild(downcast<RenderRubyRun>(parent), child); 200 201 return parent.takeChild(*this, child); 202 } 203 190 204 void RenderTreeBuilder::insertChild(RenderTreePosition& position, RenderPtr<RenderObject> child) 191 205 { … … 477 491 } 478 492 479 RenderPtr<RenderObject> RenderTreeBuilder::takeChildFromRenderRubyAsInline(RenderRubyAsInline& parent, RenderObject& child)480 {481 return rubyBuilder().takeChild(parent, child);482 }483 484 RenderPtr<RenderObject> RenderTreeBuilder::takeChildFromRenderRubyAsBlock(RenderRubyAsBlock& parent, RenderObject& child)485 {486 return rubyBuilder().takeChild(parent, child);487 }488 489 RenderPtr<RenderObject> RenderTreeBuilder::takeChildFromRenderRubyRun(RenderRubyRun& parent, RenderObject& child)490 {491 return rubyBuilder().takeChild(parent, child);492 }493 494 493 RenderPtr<RenderObject> RenderTreeBuilder::takeChildFromRenderBlock(RenderBlock& parent, RenderObject& oldChild) 495 494 { -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.h
r228735 r228737 52 52 void insertChild(RenderTreePosition&, RenderPtr<RenderObject>); 53 53 54 RenderPtr<RenderObject> takeChild(RenderElement&, RenderObject&) WARN_UNUSED_RETURN; 55 54 56 void updateAfterDescendants(RenderElement&); 55 57 … … 74 76 void insertChildToRenderMathMLFenced(RenderMathMLFenced& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr); 75 77 76 RenderPtr<RenderObject> takeChildFromRenderRubyAsInline(RenderRubyAsInline& parent, RenderObject& child);77 RenderPtr<RenderObject> takeChildFromRenderRubyAsBlock(RenderRubyAsBlock& parent, RenderObject& child);78 RenderPtr<RenderObject> takeChildFromRenderRubyRun(RenderRubyRun& parent, RenderObject& child);79 78 RenderPtr<RenderObject> takeChildFromRenderBlock(RenderBlock& parent, RenderObject& oldChild); 80 79 -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp
r227977 r228737 175 175 if (is<RenderText>(*child)) 176 176 downcast<RenderText>(*child).removeAndDestroyTextBoxes(); 177 auto toMove = firstLetter->takeChild(m_builder, *child);177 auto toMove = m_builder.takeChild(*firstLetter, *child); 178 178 m_builder.insertChild(*newFirstLetter, WTFMove(toMove)); 179 179 } -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderList.cpp
r228686 r228737 116 116 117 117 if (currentParent) 118 m_builder.insertChild(*newParent, currentParent->takeChild(m_builder, *markerRenderer), firstNonMarkerChild(*newParent));118 m_builder.insertChild(*newParent, m_builder.takeChild(*currentParent, *markerRenderer), firstNonMarkerChild(*newParent)); 119 119 else 120 120 m_builder.insertChild(*newParent, WTFMove(newMarkerRenderer), firstNonMarkerChild(*newParent)); -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp
r228686 r228737 161 161 auto& spannerOriginalParent = *placeholder->parent(); 162 162 // Detaching the spanner takes care of removing the placeholder (and merges the RenderMultiColumnSets). 163 auto spannerToReInsert = spanner->parent()->takeChild(m_builder, *spanner);163 auto spannerToReInsert = m_builder.takeChild(*spanner->parent(), *spanner); 164 164 m_builder.insertChild(spannerOriginalParent, WTFMove(spannerToReInsert)); 165 165 } … … 209 209 // Detaching the spanner takes care of removing the placeholder (and merges the RenderMultiColumnSets). 210 210 auto* spanner = placeholder->spanner(); 211 parentAndSpannerList.append(std::make_pair(spannerOriginalParent, spanner->parent()->takeChild(m_builder, *spanner)));211 parentAndSpannerList.append(std::make_pair(spannerOriginalParent, m_builder.takeChild(*spanner->parent(), *spanner))); 212 212 } 213 213 while (auto* columnSet = multiColumnFlow.firstMultiColumnSet()) … … 314 314 auto& placeholder = *newPlaceholder; 315 315 m_builder.insertChild(*container, WTFMove(newPlaceholder), descendant.nextSibling()); 316 auto takenDescendant = container->takeChild(m_builder, descendant);316 auto takenDescendant = m_builder.takeChild(*container, descendant); 317 317 318 318 // This is a guard to stop an ancestor flow thread from processing the spanner. -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp
r228688 r228737 388 388 ASSERT(child.isBeforeContent() || child.isAfterContent()); 389 389 auto& parent = *child.parent(); 390 auto takenChild = parent.takeChild(m_builder, child);390 auto takenChild = m_builder.takeChild(parent, child); 391 391 parent.removeFromParentAndDestroy(m_builder); 392 392 return takenChild; … … 394 394 395 395 // Otherwise find the containing run and remove it from there. 396 return findRubyRunParent(child).takeChild(m_builder, child);396 return m_builder.takeChild(findRubyRunParent(child), child); 397 397 } 398 398 … … 412 412 ASSERT(child.isBeforeContent() || child.isAfterContent()); 413 413 auto& parent = *child.parent(); 414 auto takenChild = parent.takeChild(m_builder, child);414 auto takenChild = m_builder.takeChild(parent, child); 415 415 parent.removeFromParentAndDestroy(m_builder); 416 416 return takenChild; … … 418 418 419 419 // Otherwise find the containing run and remove it from there. 420 return findRubyRunParent(child).takeChild(m_builder, child);420 return m_builder.takeChild(findRubyRunParent(child), child); 421 421 } 422 422 -
releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp
r228668 r228737 237 237 } 238 238 currentRow->moveAllChildrenTo(m_builder, rowToInsertInto, RenderBoxModelObject::NormalizeAfterInsertion::No); 239 auto toDestroy = section->takeChild(m_builder, *currentRow);239 auto toDestroy = m_builder.takeChild(*section, *currentRow); 240 240 currentRow = currentRow->nextRow(); 241 241 }
Note: See TracChangeset
for help on using the changeset viewer.