Subject: Re: bug#58288: 29.0.50; (flyspell-correct-word-before-point) followed by <down> crashes emacs

From: Eli Zaretskii <[email-masked]>
Date: Wed, 05 Oct 2022 13:06:52 +0300

> From: Robert Pluim <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Wed, 05 Oct 2022 12:01:03 +0200
> 
> So the code is assuming that menu_items_used > 0 means that menu_items
> is valid, but we have this in menu.c:
> 
>     void
>     save_menu_items (void)
>     {
>       Lisp_Object saved = list4 (menu_items_inuse ? menu_items : Qnil,
>                                  make_fixnum (menu_items_used),
>                                  make_fixnum (menu_items_n_panes),
>                                  make_fixnum (menu_items_submenu_depth));
>       record_unwind_protect (restore_menu_items, saved);
>       menu_items_inuse = false;
>       menu_items = Qnil;
>     }
> 
> This fixes it, but it seems a bit dodgy to me, why has no other
> platform ever run into this?

How come a menu is in use, but menu_items_inuse is zero?