aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-05-31 16:25:20 +0800
committerPo Lu2022-05-31 16:25:20 +0800
commitd94890404e91d5ba50afaa4bc27b9c655dbed5f1 (patch)
treeb24c44f7a79a5f617f85b6a5cabefb1609aece52 /src
parentb7bbf8864298dfd959ca6e7b0fa8d7fd0bbbd81f (diff)
downloademacs-d94890404e91d5ba50afaa4bc27b9c655dbed5f1.tar.gz
emacs-d94890404e91d5ba50afaa4bc27b9c655dbed5f1.zip
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')
-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,
5185static void 5185static void
5186ns_flush_display (struct frame *f) 5186ns_flush_display (struct frame *f)
5187{ 5187{
5188 struct input_event ie; 5188 NSAutoreleasePool *ap;
5189
5190 ap = [[NSAutoreleasePool alloc] init];
5189 5191
5190 /* Called from some of the minibuffer code. Run the event loop once 5192 /* Called from some of the minibuffer code. Run the event loop once
5191 to make the toolkit make changes that were made to the back 5193 to make the toolkit make changes that were made to the back
5192 buffer visible again. TODO: what should happen to ie? */ 5194 buffer visible again. */
5193 5195
5194 EVENT_INIT (ie); 5196 send_appdefined = YES;
5195 ns_read_socket (FRAME_TERMINAL (f), &ie); 5197 ns_send_appdefined (-1);
5198
5199 [NSApp run];
5200 [ap release];
5196} 5201}
5197 5202
5198/* This and next define (many of the) public functions in this 5203/* This and next define (many of the) public functions in this