]> git.eshelyaron.com Git - emacs.git/commitdiff
Prevent menu items leak if x-pre-popup-menu-hook signals
authorPo Lu <luangruo@yahoo.com>
Thu, 17 Feb 2022 10:01:30 +0000 (18:01 +0800)
committerPo Lu <luangruo@yahoo.com>
Thu, 17 Feb 2022 10:06:12 +0000 (18:06 +0800)
* src/menu.c (x_popup_menu_1): Make sure menu items are
discarded if the pre popup menu hook signals.

src/menu.c

index ad4e3abe9f1dfd5f26ba8b8960661205a0ddf37f..398bf9329ffb1d5574737b8145e61a7cc31c18ad 100644 (file)
@@ -1391,9 +1391,7 @@ x_popup_menu_1 (Lisp_Object position, Lisp_Object menu)
     }
 #endif
 
-#ifdef HAVE_NS                 /* FIXME: ns-specific, why? --Stef  */
   record_unwind_protect_void (discard_menu_items);
-#endif
 
   run_hook (Qx_pre_popup_menu_hook);
 
@@ -1404,11 +1402,7 @@ x_popup_menu_1 (Lisp_Object position, Lisp_Object menu)
     selection = FRAME_TERMINAL (f)->menu_show_hook (f, xpos, ypos, menuflags,
                                                    title, &error_name);
 
-#ifdef HAVE_NS
   unbind_to (specpdl_count, Qnil);
-#else
-  discard_menu_items ();
-#endif
 
 #ifdef HAVE_NTGUI     /* W32 specific because other terminals clear
                         the grab inside their `menu_show_hook's if