Title: [257689] trunk/Source/WebCore
Revision
257689
Author
[email protected]
Date
2020-03-01 09:19:57 -0800 (Sun, 01 Mar 2020)

Log Message

Convert m_scrollingNodeToLayerMap to use WeakPtr<RenderLayer>
https://bugs.webkit.org/show_bug.cgi?id=208403

Reviewed by Zalan Bujtas.

Use WeakPtr<> in m_scrollingNodeToLayerMap.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::attachScrollingNode):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayerWithRole):
(WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID const):
* rendering/RenderLayerCompositor.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (257688 => 257689)


--- trunk/Source/WebCore/ChangeLog	2020-03-01 05:01:30 UTC (rev 257688)
+++ trunk/Source/WebCore/ChangeLog	2020-03-01 17:19:57 UTC (rev 257689)
@@ -1,3 +1,18 @@
+2020-03-01  Simon Fraser  <[email protected]>
+
+        Convert m_scrollingNodeToLayerMap to use WeakPtr<RenderLayer>
+        https://bugs.webkit.org/show_bug.cgi?id=208403
+
+        Reviewed by Zalan Bujtas.
+
+        Use WeakPtr<> in m_scrollingNodeToLayerMap.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::attachScrollingNode):
+        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayerWithRole):
+        (WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID const):
+        * rendering/RenderLayerCompositor.h:
+
 2020-02-29  Yusuke Suzuki  <[email protected]>
 
         Remove std::lock_guard

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (257688 => 257689)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2020-03-01 05:01:30 UTC (rev 257688)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2020-03-01 17:19:57 UTC (rev 257689)
@@ -4229,8 +4229,8 @@
         return 0;
     
     backing->setScrollingNodeIDForRole(nodeID, role);
-    m_scrollingNodeToLayerMap.add(nodeID, &layer);
-    
+    m_scrollingNodeToLayerMap.add(nodeID, makeWeakPtr(layer));
+
     return nodeID;
 }
 
@@ -4264,8 +4264,8 @@
     auto unregisterNode = [&](ScrollingNodeID nodeID) {
         auto childNodes = scrollingCoordinator.childrenOfNode(nodeID);
         for (auto childNodeID : childNodes) {
-            if (auto* layer = m_scrollingNodeToLayerMap.get(childNodeID))
-                layer->setNeedsScrollingTreeUpdate();
+            if (auto weakLayer = m_scrollingNodeToLayerMap.get(childNodeID))
+                weakLayer->setNeedsScrollingTreeUpdate();
         }
 
         m_scrollingNodeToLayerMap.remove(nodeID);
@@ -4613,7 +4613,7 @@
     if (!nodeID)
         return nullptr;
 
-    return m_scrollingNodeToLayerMap.get(nodeID);
+    return m_scrollingNodeToLayerMap.get(nodeID).get();
 }
 
 void RenderLayerCompositor::willRemoveScrollingLayerWithBacking(RenderLayer& layer, RenderLayerBacking& backing)

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (257688 => 257689)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h	2020-03-01 05:01:30 UTC (rev 257688)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h	2020-03-01 17:19:57 UTC (rev 257689)
@@ -628,7 +628,7 @@
     Color m_viewBackgroundColor;
     Color m_rootExtendedBackgroundColor;
 
-    HashMap<ScrollingNodeID, RenderLayer*> m_scrollingNodeToLayerMap;
+    HashMap<ScrollingNodeID, WeakPtr<RenderLayer>> m_scrollingNodeToLayerMap;
 #if PLATFORM(IOS_FAMILY)
     std::unique_ptr<LegacyWebKitScrollingLayerCoordinator> m_legacyScrollingLayerCoordinator;
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to