gpui: Avoid dereferencing null pointer in MacWindow::active_window (#28059)

This PR adds a check to avoid dereferencing a null pointer in
`MacWindow::active_window`.

Rust 1.86 now has a [debug assertion for dereferencing null
pointers](https://blog.rust-lang.org/2025/04/03/Rust-1.86.0.html#debug-assertions-that-pointers-are-non-null-when-required-for-soundness),
which means that losing focus of the window would cause a null pointer
to be dereferenced and panic.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-04-03 18:47:13 -04:00 committed by GitHub
parent 819bb8fffb
commit ec40e2d85c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -744,6 +744,10 @@ impl MacWindow {
unsafe {
let app = NSApplication::sharedApplication(nil);
let main_window: id = msg_send![app, mainWindow];
if main_window.is_null() {
return None;
}
if msg_send![main_window, isKindOfClass: WINDOW_CLASS] {
let handle = get_window_state(&*main_window).lock().handle;
Some(handle)