From f198b222bd8ed6fe426b0cf8b3008bed18e2e7ae Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Wed, 15 Nov 2023 02:15:33 +0100 Subject: [PATCH] macOS: Fix double-free of `NSWindow` --- CHANGELOG.md | 4 ++++ src/cg.rs | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index faadac29..5e300d0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Unreleased + +- MacOS: Fix double-free of `NSWindow`. + # 0.4.0 - **Breaking:** Port to use `raw-window-handle` v0.6.(#132) diff --git a/src/cg.rs b/src/cg.rs index 97cc913b..9f6035a5 100644 --- a/src/cg.rs +++ b/src/cg.rs @@ -42,7 +42,8 @@ impl CGImpl { _ => return Err(InitError::Unsupported(window_src)), }; let view = handle.ns_view.as_ptr() as id; - let window = unsafe { msg_send![view, window] }; + let window: id = unsafe { msg_send![view, window] }; + let window: id = unsafe { msg_send![window, retain] }; let layer = CALayer::new(); unsafe { let subview: id = NSView::alloc(nil).initWithFrame_(NSView::frame(view));