summaryrefslogtreecommitdiff
path: root/src/nsterm.m
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-05-31 16:25:20 +0800
committerPo Lu <luangruo@yahoo.com>2022-05-31 16:25:20 +0800
commitd94890404e91d5ba50afaa4bc27b9c655dbed5f1 (patch)
treeb24c44f7a79a5f617f85b6a5cabefb1609aece52 /src/nsterm.m
parentb7bbf8864298dfd959ca6e7b0fa8d7fd0bbbd81f (diff)
downloademacs-d94890404e91d5ba50afaa4bc27b9c655dbed5f1.tar.gz
Fix crashes displaying menu help text on NS
* src/nsterm.m (ns_flush_display): Run event loop manually, avoiding a double free of an autorelease pool.
Diffstat (limited to 'src/nsterm.m')
-rw-r--r--src/nsterm.m13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/nsterm.m b/src/nsterm.m
index 3d2b4116cab..0c83656125c 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -5185,14 +5185,19 @@ ns_update_window_end (struct window *w, bool cursor_on_p,
static void
ns_flush_display (struct frame *f)
{
- struct input_event ie;
+ NSAutoreleasePool *ap;
+
+ ap = [[NSAutoreleasePool alloc] init];
/* Called from some of the minibuffer code. Run the event loop once
to make the toolkit make changes that were made to the back
- buffer visible again. TODO: what should happen to ie? */
+ buffer visible again. */
- EVENT_INIT (ie);
- ns_read_socket (FRAME_TERMINAL (f), &ie);
+ send_appdefined = YES;
+ ns_send_appdefined (-1);
+
+ [NSApp run];
+ [ap release];
}
/* This and next define (many of the) public functions in this