]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix crash when using menus and tramp on NS
authorAlan Third <alan@idiocy.org>
Sat, 2 Jan 2021 22:27:53 +0000 (22:27 +0000)
committerAlan Third <alan@idiocy.org>
Sun, 4 Apr 2021 10:44:37 +0000 (11:44 +0100)
; 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)

src/nsterm.m

index b8658a05dafefe88a847d56a6eff9de720f225a3..26cc948614115edacd566524d4dfa7fa2632f263 100644 (file)
@@ -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;