Title: [292911] trunk/Source/WebCore
Revision
292911
Author
[email protected]
Date
2022-04-15 10:11:58 -0700 (Fri, 15 Apr 2022)

Log 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):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (292910 => 292911)


--- trunk/Source/WebCore/ChangeLog	2022-04-15 16:24:21 UTC (rev 292910)
+++ trunk/Source/WebCore/ChangeLog	2022-04-15 17:11:58 UTC (rev 292911)
@@ -1,3 +1,20 @@
+2022-04-15  Brandon Stewart  <[email protected]>
+
+        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):
+
 2022-04-15  Youenn Fablet  <[email protected]>
 
         Sandboxed iframe loads should match a service worker registration based on sandbox flags

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (292910 => 292911)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2022-04-15 16:24:21 UTC (rev 292910)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2022-04-15 17:11:58 UTC (rev 292911)
@@ -676,21 +676,21 @@
         child.removeLayers();
 }
 
-void RenderElement::moveLayers(RenderLayer* oldParent, RenderLayer& newParent)
+void RenderElement::moveLayers(RenderLayer& newParent)
 {
     if (hasLayer()) {
         if (isInTopLayerOrBackdrop(style(), element()))
             return;
         RenderLayer* layer = downcast<RenderLayerModelObject>(*this).layer();
-        ASSERT(oldParent == layer->parent());
-        if (oldParent)
-            oldParent->removeChild(*layer);
+        auto* layerParent = layer->parent();
+        if (layerParent)
+            layerParent->removeChild(*layer);
         newParent.addChild(*layer);
         return;
     }
 
     for (auto& child : childrenOfType<RenderElement>(*this))
-        child.moveLayers(oldParent, newParent);
+        child.moveLayers(newParent);
 }
 
 RenderLayer* RenderElement::layerParent() const

Modified: trunk/Source/WebCore/rendering/RenderElement.h (292910 => 292911)


--- trunk/Source/WebCore/rendering/RenderElement.h	2022-04-15 16:24:21 UTC (rev 292910)
+++ trunk/Source/WebCore/rendering/RenderElement.h	2022-04-15 17:11:58 UTC (rev 292911)
@@ -112,7 +112,7 @@
     RenderLayer* layerNextSibling(RenderLayer& parentLayer) const;
     void addLayers(RenderLayer* parentLayer);
     void removeLayers();
-    void moveLayers(RenderLayer* oldParent, RenderLayer& newParent);
+    void moveLayers(RenderLayer& newParent);
 
     virtual void dirtyLinesFromChangedChild(RenderObject&) { }
 

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (292910 => 292911)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2022-04-15 16:24:21 UTC (rev 292910)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2022-04-15 17:11:58 UTC (rev 292911)
@@ -498,7 +498,7 @@
 
     // Remove all descendant layers from the hierarchy and add them to the new position.
     for (auto& child : childrenOfType<RenderElement>(renderer()))
-        child.moveLayers(m_parent, *this);
+        child.moveLayers(*this);
 
     if (parent()) {
         if (timing == LayerChangeTiming::StyleChange)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to