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