From 8ea35a8099f34f482d090ea8068e89f52dcd29ac Mon Sep 17 00:00:00 2001 From: Kai Ma Date: Sat, 3 Dec 2022 18:17:26 +0800 Subject: [PATCH] Prevent a segfault when deleting a fullscreen frame on NextStep. * nsterm.m ([EmacsView resetCursorRects:]): Be defensive when accessing FRAME_OUTPUT_DATA. --- src/nsterm.m | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/nsterm.m b/src/nsterm.m index 507f2a9e7d..c09f743ec7 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -6703,8 +6703,16 @@ - (BOOL)acceptsFirstResponder - (void)resetCursorRects { - NSRect visible = [self visibleRect]; - NSCursor *currentCursor = FRAME_POINTER_TYPE (emacsframe); + NSRect visible; + NSCursor *currentCursor; + + /* On macOS 13, [resetCursorRects:] could be called even after the + window is closed. */ + if (! emacsframe || ! FRAME_OUTPUT_DATA (emacsframe)) + return; + + visible = [self visibleRect]; + currentCursor = FRAME_POINTER_TYPE (emacsframe); NSTRACE ("[EmacsView resetCursorRects]"); if (currentCursor == nil) -- 2.37.1 (Apple Git-137.1)