macOS: Fix crash when reconnecting monitors (#4151)

CFArrayGetValueAtIndex does not return a retained value, so we must
retain ourselves.
This commit is contained in:
Mads Marquart 2025-02-28 17:32:24 +01:00 committed by GitHub
parent 46879429ed
commit 8c3e69c08b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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