Skip to content

Commit

Permalink
Merge r228337 - [RenderTreeBuilder] Introduce RenderTreeBuilder to wi…
Browse files Browse the repository at this point in the history
…llBeDestoryed/removeFromParentAndDestroy

https://bugs.webkit.org/show_bug.cgi?id=182635
<rdar://problem/37377489>

Reviewed by Antti Koivisto.

This patch helps finding callsites where we don't have a RenderTreeBuilder instance.

No change in functionality.

* dom/Document.cpp:
(WebCore::Document::setFullScreenRenderer):
* dom/Document.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::takeChild):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::willBeDestroyed):
(WebCore::RenderBoxModelObject::removeAndDestroyAllContinuations):
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setText):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::willBeDestroyed):
* rendering/RenderCounter.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeDestroyed):
* rendering/RenderElement.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::willBeDestroyed):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::willBeDestroyed):
* rendering/RenderFragmentedFlow.h:
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::willBeDestroyed):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
* rendering/RenderFullScreen.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::willBeDestroyed):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
* rendering/RenderInline.h:
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
* rendering/RenderLayerModelObject.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::willBeDestroyed):
* rendering/RenderListBox.h:
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::willBeDestroyed):
* rendering/RenderListItem.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::willBeDestroyed):
* rendering/RenderListMarker.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::willBeDestroyed):
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::handleSpannerRemoval):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::removeFromParentAndDestroy):
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::destroy):
* rendering/RenderObject.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::willBeDestroyed):
* rendering/RenderReplaced.h:
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::takeChild):
(WebCore::RenderRubyAsBlock::takeChild):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::willBeDestroyed):
* rendering/RenderSearchField.h:
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::willBeDestroyed):
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::willBeDestroyed):
* rendering/RenderText.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::willBeDestroyed):
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::willBeDestroyed):
(WebCore::RenderTextFragment::setText):
* rendering/RenderTextFragment.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::willBeDestroyed):
* rendering/RenderVideo.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::willBeDestroyed):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed):
* rendering/RenderWidget.h:
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::willBeDestroyed):
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::willBeDestroyed):
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::willBeDestroyed):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::willBeDestroyed):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::willBeDestroyed):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::willBeDestroyed):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::willBeDestroyed):
* rendering/svg/RenderSVGText.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
* rendering/updating/RenderTreeBuilderList.cpp:
(WebCore::RenderTreeBuilder::List::updateItemMarker):
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):
  • Loading branch information
alanbaradlay authored and carlosgcampos committed Feb 19, 2018
1 parent eff1ca3 commit 3780897
Show file tree
Hide file tree
Showing 75 changed files with 281 additions and 130 deletions.
138 changes: 138 additions & 0 deletions Source/WebCore/ChangeLog
@@ -1,3 +1,141 @@
2018-02-09 Zalan Bujtas <zalan@apple.com>

[RenderTreeBuilder] Introduce RenderTreeBuilder to willBeDestoryed/removeFromParentAndDestroy
https://bugs.webkit.org/show_bug.cgi?id=182635
<rdar://problem/37377489>

Reviewed by Antti Koivisto.

This patch helps finding callsites where we don't have a RenderTreeBuilder instance.

No change in functionality.

* dom/Document.cpp:
(WebCore::Document::setFullScreenRenderer):
* dom/Document.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::takeChild):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::willBeDestroyed):
(WebCore::RenderBoxModelObject::removeAndDestroyAllContinuations):
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setText):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::willBeDestroyed):
* rendering/RenderCounter.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeDestroyed):
* rendering/RenderElement.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::willBeDestroyed):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::willBeDestroyed):
* rendering/RenderFragmentedFlow.h:
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::willBeDestroyed):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
* rendering/RenderFullScreen.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::willBeDestroyed):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
* rendering/RenderInline.h:
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
* rendering/RenderLayerModelObject.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::willBeDestroyed):
* rendering/RenderListBox.h:
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::willBeDestroyed):
* rendering/RenderListItem.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::willBeDestroyed):
* rendering/RenderListMarker.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::willBeDestroyed):
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::handleSpannerRemoval):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::removeFromParentAndDestroy):
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::destroy):
* rendering/RenderObject.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::willBeDestroyed):
* rendering/RenderReplaced.h:
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::takeChild):
(WebCore::RenderRubyAsBlock::takeChild):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::willBeDestroyed):
* rendering/RenderSearchField.h:
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::willBeDestroyed):
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::willBeDestroyed):
* rendering/RenderText.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::willBeDestroyed):
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::willBeDestroyed):
(WebCore::RenderTextFragment::setText):
* rendering/RenderTextFragment.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::willBeDestroyed):
* rendering/RenderVideo.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::willBeDestroyed):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed):
* rendering/RenderWidget.h:
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::willBeDestroyed):
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::willBeDestroyed):
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::willBeDestroyed):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::willBeDestroyed):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::willBeDestroyed):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::willBeDestroyed):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::willBeDestroyed):
* rendering/svg/RenderSVGText.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
* rendering/updating/RenderTreeBuilderList.cpp:
(WebCore::RenderTreeBuilder::List::updateItemMarker):
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):

2018-02-09 Zalan Bujtas <zalan@apple.com>

[RenderTreeBuilder] Move multicolumn descendant/sibling removal logic to RenderTreeBuilder
Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/dom/Document.cpp
Expand Up @@ -6301,7 +6301,7 @@ void Document::webkitDidExitFullScreenForElement(Element*)
exitingDocument.m_fullScreenChangeDelayTimer.startOneShot(0_s);
}

void Document::setFullScreenRenderer(RenderFullScreen* renderer)
void Document::setFullScreenRenderer(RenderTreeBuilder& builder, RenderFullScreen* renderer)
{
if (renderer == m_fullScreenRenderer)
return;
Expand All @@ -6316,7 +6316,7 @@ void Document::setFullScreenRenderer(RenderFullScreen* renderer)
}

if (m_fullScreenRenderer)
m_fullScreenRenderer->removeFromParentAndDestroy();
m_fullScreenRenderer->removeFromParentAndDestroy(builder);
ASSERT(!m_fullScreenRenderer);

m_fullScreenRenderer = makeWeakPtr(renderer);
Expand Down
3 changes: 2 additions & 1 deletion Source/WebCore/dom/Document.h
Expand Up @@ -152,6 +152,7 @@ class ProcessingInstruction;
class QualifiedName;
class Range;
class RenderFullScreen;
class RenderTreeBuilder;
class RenderView;
class RequestAnimationFrameCallback;
class SVGDocumentExtensions;
Expand Down Expand Up @@ -1130,7 +1131,7 @@ class Document
WEBCORE_EXPORT void webkitWillExitFullScreenForElement(Element*);
WEBCORE_EXPORT void webkitDidExitFullScreenForElement(Element*);

void setFullScreenRenderer(RenderFullScreen*);
void setFullScreenRenderer(RenderTreeBuilder&, RenderFullScreen*);
RenderFullScreen* fullScreenRenderer() const { return m_fullScreenRenderer.get(); }

void fullScreenChangeDelayTimerFired();
Expand Down
6 changes: 3 additions & 3 deletions Source/WebCore/rendering/RenderBlock.cpp
Expand Up @@ -343,7 +343,7 @@ RenderBlock::~RenderBlock()
}

// Note that this is not called for RenderBlockFlows.
void RenderBlock::willBeDestroyed()
void RenderBlock::willBeDestroyed(RenderTreeBuilder& builder)
{
if (!renderTreeBeingDestroyed()) {
if (parent())
Expand All @@ -352,7 +352,7 @@ void RenderBlock::willBeDestroyed()

blockWillBeDestroyed();

RenderBox::willBeDestroyed();
RenderBox::willBeDestroyed(builder);
}

void RenderBlock::blockWillBeDestroyed()
Expand Down Expand Up @@ -578,7 +578,7 @@ RenderPtr<RenderObject> RenderBlock::takeChild(RenderTreeBuilder& builder, Rende

// Delete the now-empty block's lines and nuke it.
nextBlock.deleteLines();
nextBlock.removeFromParentAndDestroy();
nextBlock.removeFromParentAndDestroy(builder);
next = nullptr;
}
}
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/RenderBlock.h
Expand Up @@ -323,7 +323,7 @@ class RenderBlock : public RenderBox {

protected:
RenderFragmentedFlow* locateEnclosingFragmentedFlow() const override;
void willBeDestroyed() override;
void willBeDestroyed(RenderTreeBuilder&) override;

void layout() override;

Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/rendering/RenderBlockFlow.cpp
Expand Up @@ -127,7 +127,7 @@ RenderBlockFlow::~RenderBlockFlow()
// Do not add any code here. Add it to willBeDestroyed() instead.
}

void RenderBlockFlow::willBeDestroyed()
void RenderBlockFlow::willBeDestroyed(RenderTreeBuilder& builder)
{
if (!renderTreeBeingDestroyed()) {
if (firstRootBox()) {
Expand All @@ -154,7 +154,7 @@ void RenderBlockFlow::willBeDestroyed()
blockWillBeDestroyed();

// NOTE: This jumps down to RenderBox, bypassing RenderBlock since it would do duplicate work.
RenderBox::willBeDestroyed();
RenderBox::willBeDestroyed(builder);
}

RenderBlockFlow* RenderBlockFlow::previousSiblingWithOverhangingFloats(bool& parentHasFloats) const
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/RenderBlockFlow.h
Expand Up @@ -59,7 +59,7 @@ class RenderBlockFlow : public RenderBlock {
void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override;

protected:
void willBeDestroyed() override;
void willBeDestroyed(RenderTreeBuilder&) override;

// This method is called at the start of layout to wipe away all of the floats in our floating objects list. It also
// repopulates the list with any floats that intrude from previous siblings or parents. Floats that were added by
Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/rendering/RenderBox.cpp
Expand Up @@ -150,7 +150,7 @@ RenderBox::~RenderBox()
// Do not add any code here. Add it to willBeDestroyed() instead.
}

void RenderBox::willBeDestroyed()
void RenderBox::willBeDestroyed(RenderTreeBuilder& builder)
{
if (frame().eventHandler().autoscrollRenderer() == this)
frame().eventHandler().stopAutoscrollTimer(true);
Expand All @@ -170,7 +170,7 @@ void RenderBox::willBeDestroyed()
view().unregisterBoxWithScrollSnapPositions(*this);
#endif

RenderBoxModelObject::willBeDestroyed();
RenderBoxModelObject::willBeDestroyed(builder);
}

RenderFragmentContainer* RenderBox::clampToStartAndEndFragments(RenderFragmentContainer* fragment) const
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/RenderBox.h
Expand Up @@ -631,7 +631,7 @@ class RenderBox : public RenderBoxModelObject {
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
void updateFromStyle() override;

void willBeDestroyed() override;
void willBeDestroyed(RenderTreeBuilder&) override;

bool createsNewFormattingContext() const;

Expand Down
10 changes: 5 additions & 5 deletions Source/WebCore/rendering/RenderBoxModelObject.cpp
Expand Up @@ -237,10 +237,10 @@ RenderBoxModelObject::~RenderBoxModelObject()
// Do not add any code here. Add it to willBeDestroyed() instead.
}

void RenderBoxModelObject::willBeDestroyed()
void RenderBoxModelObject::willBeDestroyed(RenderTreeBuilder& builder)
{
if (continuation() && !isContinuation()) {
removeAndDestroyAllContinuations();
removeAndDestroyAllContinuations(builder);
ASSERT(!continuation());
}
if (hasContinuationChainNode())
Expand All @@ -252,7 +252,7 @@ void RenderBoxModelObject::willBeDestroyed()
if (!renderTreeBeingDestroyed())
view().imageQualityController().rendererWillBeDestroyed(*this);

RenderLayerModelObject::willBeDestroyed();
RenderLayerModelObject::willBeDestroyed(builder);
}

bool RenderBoxModelObject::hasVisibleBoxDecorationStyle() const
Expand Down Expand Up @@ -2551,14 +2551,14 @@ auto RenderBoxModelObject::ensureContinuationChainNode() -> ContinuationChainNod
}).iterator->value;
}

void RenderBoxModelObject::removeAndDestroyAllContinuations()
void RenderBoxModelObject::removeAndDestroyAllContinuations(RenderTreeBuilder& builder)
{
ASSERT(!isContinuation());
ASSERT(hasContinuationChainNode());
ASSERT(continuationChainNodeMap().contains(this));
auto& continuationChainNode = *continuationChainNodeMap().get(this);
while (continuationChainNode.next)
continuationChainNode.next->renderer->removeFromParentAndDestroy();
continuationChainNode.next->renderer->removeFromParentAndDestroy(builder);
removeFromContinuationChain();
}

Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/rendering/RenderBoxModelObject.h
Expand Up @@ -245,7 +245,7 @@ class RenderBoxModelObject : public RenderLayerModelObject {
RenderBoxModelObject(Element&, RenderStyle&&, BaseTypeFlags);
RenderBoxModelObject(Document&, RenderStyle&&, BaseTypeFlags);

void willBeDestroyed() override;
void willBeDestroyed(RenderTreeBuilder&) override;

LayoutPoint adjustedPositionRelativeToOffsetParent(const LayoutPoint&) const;

Expand Down Expand Up @@ -308,7 +308,7 @@ class RenderBoxModelObject : public RenderLayerModelObject {

private:
ContinuationChainNode& ensureContinuationChainNode();
void removeAndDestroyAllContinuations();
void removeAndDestroyAllContinuations(RenderTreeBuilder&);

LayoutUnit computedCSSPadding(const Length&) const;

Expand Down
7 changes: 6 additions & 1 deletion Source/WebCore/rendering/RenderButton.cpp
Expand Up @@ -128,7 +128,12 @@ void RenderButton::setText(const String& str)
m_buttonText->setText(str.impl());
return;
}
m_buttonText->removeFromParentAndDestroy();
if (RenderTreeBuilder::current())
m_buttonText->removeFromParentAndDestroy(*RenderTreeBuilder::current());
else {
RenderTreeBuilder builder(*document().renderView());
m_buttonText->removeFromParentAndDestroy(builder);
}
}

String RenderButton::text() const
Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/rendering/RenderCounter.cpp
Expand Up @@ -352,7 +352,7 @@ RenderCounter::~RenderCounter()
// Do not add any code here. Add it to willBeDestroyed() instead.
}

void RenderCounter::willBeDestroyed()
void RenderCounter::willBeDestroyed(RenderTreeBuilder& builder)
{
view().removeRenderCounter();

Expand All @@ -361,7 +361,7 @@ void RenderCounter::willBeDestroyed()
ASSERT(!m_counterNode);
}

RenderText::willBeDestroyed();
RenderText::willBeDestroyed(builder);
}

const char* RenderCounter::renderName() const
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/RenderCounter.h
Expand Up @@ -43,7 +43,7 @@ class RenderCounter final : public RenderText {
void updateCounter();

private:
void willBeDestroyed() override;
void willBeDestroyed(RenderTreeBuilder&) override;

const char* renderName() const override;
bool isCounter() const override;
Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/rendering/RenderElement.cpp
Expand Up @@ -1050,7 +1050,7 @@ inline void RenderElement::clearSubtreeLayoutRootIfNeeded() const
view().frameView().layoutContext().clearSubtreeLayoutRoot();
}

void RenderElement::willBeDestroyed()
void RenderElement::willBeDestroyed(RenderTreeBuilder& builder)
{
if (m_style.hasFixedBackgroundImage() && !settings().fixedBackgroundsPaintRelativeToDocument())
view().frameView().removeSlowRepaintObject(*this);
Expand All @@ -1060,7 +1060,7 @@ void RenderElement::willBeDestroyed()
if (hasCounterNodeMap())
RenderCounter::destroyCounterNodes(*this);

RenderObject::willBeDestroyed();
RenderObject::willBeDestroyed(builder);

clearSubtreeLayoutRootIfNeeded();

Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/RenderElement.h
Expand Up @@ -260,7 +260,7 @@ class RenderElement : public RenderObject {

void insertedIntoTree() override;
void willBeRemovedFromTree() override;
void willBeDestroyed() override;
void willBeDestroyed(RenderTreeBuilder&) override;

void setRenderInlineAlwaysCreatesLineBoxes(bool b) { m_renderInlineAlwaysCreatesLineBoxes = b; }
bool renderInlineAlwaysCreatesLineBoxes() const { return m_renderInlineAlwaysCreatesLineBoxes; }
Expand Down

0 comments on commit 3780897

Please sign in to comment.