Changeset 292911 in webkit
- Timestamp:
- Apr 15, 2022, 10:11:58 AM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
rendering/RenderElement.cpp (modified) (3 diffs)
-
rendering/RenderElement.h (modified) (1 diff)
-
rendering/RenderLayer.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r292907 r292911 1 2022-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 1 18 2022-04-15 Youenn Fablet <youenn@apple.com> 2 19 -
trunk/Source/WebCore/rendering/RenderElement.cpp
r292596 r292911 677 677 } 678 678 679 void RenderElement::moveLayers(RenderLayer * oldParent, RenderLayer& newParent)679 void RenderElement::moveLayers(RenderLayer& newParent) 680 680 { 681 681 if (hasLayer()) { … … 683 683 return; 684 684 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); 688 688 newParent.addChild(*layer); 689 689 return; … … 691 691 692 692 for (auto& child : childrenOfType<RenderElement>(*this)) 693 child.moveLayers( oldParent,newParent);693 child.moveLayers(newParent); 694 694 } 695 695 -
trunk/Source/WebCore/rendering/RenderElement.h
r292596 r292911 113 113 void addLayers(RenderLayer* parentLayer); 114 114 void removeLayers(); 115 void moveLayers(RenderLayer * oldParent, RenderLayer& newParent);115 void moveLayers(RenderLayer& newParent); 116 116 117 117 virtual void dirtyLinesFromChangedChild(RenderObject&) { } -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r292812 r292911 499 499 // Remove all descendant layers from the hierarchy and add them to the new position. 500 500 for (auto& child : childrenOfType<RenderElement>(renderer())) 501 child.moveLayers( m_parent,*this);501 child.moveLayers(*this); 502 502 503 503 if (parent()) {
Note:
See TracChangeset
for help on using the changeset viewer.