summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Third <alan@idiocy.org>2021-01-02 22:27:53 +0000
committerAlan Third <alan@idiocy.org>2021-04-04 11:44:37 +0100
commite2d199aa44a92e50f480e0aa265f96a144d57a60 (patch)
tree3fa3970ea7ae65fbbbc8638d5ddb5d448a0ae387
parent3ec93bb7c240edd6e06647a75df31acc6ce600dd (diff)
downloademacs-e2d199aa44a92e50f480e0aa265f96a144d57a60.tar.gz
Fix crash when using menus and tramp on NS
; Fixes bug#24472, bug#37557 and bug#37922. * src/nsterm.m (ns_select): Don't drain outerpool in this function. (cherry picked from commit f14869cd70e61b1908ec88a5e3d4bf21c7d538a0)
-rw-r--r--src/nsterm.m18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/nsterm.m b/src/nsterm.m
index b8658a05daf..26cc9486141 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -4633,8 +4633,22 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
thread_select(pselect, 0, NULL, NULL, NULL, &t, sigmask);
}
- [outerpool release];
- outerpool = [[NSAutoreleasePool alloc] init];
+ /* FIXME: This draining of outerpool causes a crash when a buffer
+ running over tramp is displayed and the user tries to use the
+ menus. I believe some other autorelease pool's lifetime
+ straddles this call causing a violation of autorelease pool
+ nesting. There's no good reason to keep these here since the
+ pool will be drained some other time anyway, but removing them
+ leaves the menus sometimes not opening until the user moves their
+ mouse pointer, but that's better than a crash.
+
+ There must be something about running external processes like
+ tramp that interferes with the modal menu code.
+
+ See bugs 24472, 37557, 37922. */
+
+ // [outerpool release];
+ // outerpool = [[NSAutoreleasePool alloc] init];
send_appdefined = YES;