From 754df9356d815c8c17ad2ce1cb5f6183840ab9f0 Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Wed, 13 Mar 2024 10:41:25 +0100 Subject: [PATCH] Fix segfault when dropping MacWindow (#9267) This avoids calling `window.setDelegate(nil)` when the window was already closed. Release Notes: - Fixed a segfault that could show up when closing windows. Co-authored-by: Antonio --- crates/gpui/src/platform/mac/window.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/gpui/src/platform/mac/window.rs b/crates/gpui/src/platform/mac/window.rs index 196c861a937c4ec129123be77e077f92722eed0f..e648f508b661d653ebc491edc89e42e3dedde8db 100644 --- a/crates/gpui/src/platform/mac/window.rs +++ b/crates/gpui/src/platform/mac/window.rs @@ -695,10 +695,11 @@ impl Drop for MacWindow { this.renderer.destroy(); let window = this.native_window; this.display_link.take(); - unsafe { - this.native_window.setDelegate_(nil); - } if !this.native_window_was_closed { + unsafe { + this.native_window.setDelegate_(nil); + } + this.executor .spawn(async move { unsafe {