From 8c3e69c08b6d48d67f9280bd8a57edbb6e1d1e55 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 28 Feb 2025 17:32:24 +0100 Subject: [PATCH] macOS: Fix crash when reconnecting monitors (#4151) CFArrayGetValueAtIndex does not return a retained value, so we must retain ourselves. --- src/platform_impl/apple/appkit/monitor.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform_impl/apple/appkit/monitor.rs b/src/platform_impl/apple/appkit/monitor.rs index af4c2fc5..a4141111 100644 --- a/src/platform_impl/apple/appkit/monitor.rs +++ b/src/platform_impl/apple/appkit/monitor.rs @@ -246,7 +246,7 @@ impl MonitorHandle { let modes: Vec<_> = (0..array_count) .map(move |i| { let mode = CFArrayGetValueAtIndex(&array, i) as *mut CGDisplayMode; - CFRetained::from_raw(NonNull::new(mode).unwrap()) + CFRetained::retain(NonNull::new(mode).unwrap()) }) .collect(); modes