Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b7292a414ad04198b1fc58a6edf19dab9f0c5d02
https://github.com/WebKit/WebKit/commit/b7292a414ad04198b1fc58a6edf19dab9f0c5d02
Author: Aditya Keerthi <[email protected]>
Date: 2025-02-27 (Thu, 27 Feb 2025)
Changed paths:
M Source/WebKit/Platform/cocoa/WKMaterialHostingSupport.h
M Source/WebKit/Platform/cocoa/WKMaterialHostingSupport.swift
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm
Log Message:
-----------
[Materials] Crash when removing hosted materials
https://bugs.webkit.org/show_bug.cgi?id=288708
rdar://145703767
Reviewed by Abrar Rahman Protyasha and Tim Horton.
Objects created in Swift and bridged to Objective-C, do not have a +1 retain
count even though the method name contains "create". The use of `adoptNS` with
these objects results in nothing keeping them alive during a commit after the
layers are removed. Consequently, a crash is encountered as CA attempts to use
the layer after it is freed.
Rename methods to remove "create" to reflect the reality of the situation, and
remove the use of `adoptNS` with the bridged methods.
Note that methods that begin with "alloc", "new", "copy", or "mutableCopy"
return a +1 object. A function name that begins with "Create" will also return
+1, but no such rule for methods that begin with "create".
* Source/WebKit/Platform/cocoa/WKMaterialHostingSupport.h:
* Source/WebKit/Platform/cocoa/WKMaterialHostingSupport.swift:
(WKMaterialHostingSupport.isMaterialHostingAvailable):
(WKMaterialHostingSupport.contentLayer(forMaterialHostingLayer:)):
(WKMaterialHostingSupport.createHostingLayer): Deleted.
(WKMaterialHostingSupport.createHostingView(_:)): Deleted.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(-[WKMaterialHostingView init]):
Canonical link: https://commits.webkit.org/291228@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes