From 568e5bd70de136c389e5c5ba02c50c22ce90c2d6 Mon Sep 17 00:00:00 2001 From: Wu Wayne Date: Sun, 4 Aug 2024 21:02:13 +0900 Subject: [PATCH] Add reference count to layer to prevent use after free --- src/platform/macos/system/surface.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platform/macos/system/surface.rs b/src/platform/macos/system/surface.rs index ed42c4f8..9d6f4909 100644 --- a/src/platform/macos/system/surface.rs +++ b/src/platform/macos/system/surface.rs @@ -196,6 +196,7 @@ impl Device { transaction::set_disable_actions(true); let superlayer = CALayer::new(); + let _: () = msg_send![superlayer.id(), retain]; native_widget.view.0.setLayer(superlayer.id()); native_widget.view.0.setWantsLayer(YES); @@ -209,6 +210,7 @@ impl Device { let opaque = native_widget.opaque; let layer = CALayer::new(); + let _: () = msg_send![layer.id(), retain]; let layer_size = CGSize::new(logical_size.width as f64, logical_size.height as f64); layer.set_frame(&CGRect::new(&CG_ZERO_POINT, &layer_size)); layer.set_contents(front_surface.obj as id);