diff options
author | Po Lu <luangruo@yahoo.com> | 2022-05-31 16:25:20 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-05-31 16:25:20 +0800 |
commit | d94890404e91d5ba50afaa4bc27b9c655dbed5f1 (patch) | |
tree | b24c44f7a79a5f617f85b6a5cabefb1609aece52 /src/nsterm.m | |
parent | b7bbf8864298dfd959ca6e7b0fa8d7fd0bbbd81f (diff) | |
download | emacs-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.m | 13 |
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 |