⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 292911 in webkit


Ignore:
Timestamp:
Apr 15, 2022, 10:11:58 AM (4 years ago)
Author:
Brandon
Message:

Parent Mismatch
https://bugs.webkit.org/show_bug.cgi?id=239390

Reviewed by Simon Fraser.

The oldParent and layer->parent() may be different under certain circumstances.
To account for this, we can just use the layer->parent() and remove the use
of oldParent. This also has the benefit of simplifying the moveLayers() function.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::moveLayers):

  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::insertOnlyThisLayer):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r292907 r292911  
     12022-04-15  Brandon Stewart  <brandonstewart@apple.com>
     2
     3        Parent Mismatch
     4        https://bugs.webkit.org/show_bug.cgi?id=239390
     5
     6        Reviewed by Simon Fraser.
     7
     8        The oldParent and layer->parent() may be different under certain circumstances.
     9        To account for this, we can just use the layer->parent() and remove the use
     10        of oldParent. This also has the benefit of simplifying the moveLayers() function.
     11
     12        * rendering/RenderElement.cpp:
     13        (WebCore::RenderElement::moveLayers):
     14        * rendering/RenderElement.h:
     15        * rendering/RenderLayer.cpp:
     16        (WebCore::RenderLayer::insertOnlyThisLayer):
     17
    1182022-04-15  Youenn Fablet  <youenn@apple.com>
    219
  • trunk/Source/WebCore/rendering/RenderElement.cpp

    r292596 r292911  
    677677}
    678678
    679 void RenderElement::moveLayers(RenderLayer* oldParent, RenderLayer& newParent)
     679void RenderElement::moveLayers(RenderLayer& newParent)
    680680{
    681681    if (hasLayer()) {
     
    683683            return;
    684684        RenderLayer* layer = downcast<RenderLayerModelObject>(*this).layer();
    685         ASSERT(oldParent == layer->parent());
    686         if (oldParent)
    687             oldParent->removeChild(*layer);
     685        auto* layerParent = layer->parent();
     686        if (layerParent)
     687            layerParent->removeChild(*layer);
    688688        newParent.addChild(*layer);
    689689        return;
     
    691691
    692692    for (auto& child : childrenOfType<RenderElement>(*this))
    693         child.moveLayers(oldParent, newParent);
     693        child.moveLayers(newParent);
    694694}
    695695
  • trunk/Source/WebCore/rendering/RenderElement.h

    r292596 r292911  
    113113    void addLayers(RenderLayer* parentLayer);
    114114    void removeLayers();
    115     void moveLayers(RenderLayer* oldParent, RenderLayer& newParent);
     115    void moveLayers(RenderLayer& newParent);
    116116
    117117    virtual void dirtyLinesFromChangedChild(RenderObject&) { }
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r292812 r292911  
    499499    // Remove all descendant layers from the hierarchy and add them to the new position.
    500500    for (auto& child : childrenOfType<RenderElement>(renderer()))
    501         child.moveLayers(m_parent, *this);
     501        child.moveLayers(*this);
    502502
    503503    if (parent()) {
Note: See TracChangeset for help on using the changeset viewer.