From: Andreas Schwab Date: Mon, 9 May 2011 11:13:02 +0000 (+0200) Subject: * xmenu.c (set_frame_menubar): Fix submenu loops. X-Git-Tag: emacs-pretest-24.0.90~104^3~54 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=25fb3d747b89eea898f870fcd1770e6c12830ebb;p=emacs.git * xmenu.c (set_frame_menubar): Fix submenu loops. --- diff --git a/src/ChangeLog b/src/ChangeLog index 2a051a9e27b..4ab5b4e64f1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-05-09 Andreas Schwab + + * xmenu.c (set_frame_menubar): Fix submenu loops. + 2011-05-09 Eli Zaretskii Backport revisions 103939.1.41..103939.1.44 (inclusive) from trunk. diff --git a/src/xmenu.c b/src/xmenu.c index 2a05c52ee34..5c6c2b0cfdd 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -1058,21 +1058,20 @@ set_frame_menubar (f, first_time, deep_p) menu_items = f->menu_bar_vector; menu_items_allocated = VECTORP (menu_items) ? ASIZE (menu_items) : 0; subitems = XVECTOR_SIZE (items) / 4; - submenu_start = (int *) alloca (subitems * sizeof (int *)); - submenu_end = (int *) alloca (subitems * sizeof (int *)); + submenu_start = (int *) alloca (subitems * sizeof (int)); + submenu_end = (int *) alloca (subitems * sizeof (int)); submenu_n_panes = (int *) alloca (subitems * sizeof (int)); - submenu_top_level_items - = (int *) alloca (subitems * sizeof (int *)); + submenu_top_level_items = (int *) alloca (subitems * sizeof (int)); init_menu_items (); - for (i = 0; i < subitems; i += 4) + for (i = 0; i < subitems; i++) { Lisp_Object key, string, maps; last_i = i; - key = XVECTOR (items)->contents[i]; - string = XVECTOR (items)->contents[i + 1]; - maps = XVECTOR (items)->contents[i + 2]; + key = XVECTOR (items)->contents[i * 4]; + string = XVECTOR (items)->contents[i * 4 + 1]; + maps = XVECTOR (items)->contents[i * 4 + 2]; if (NILP (string)) break; @@ -1099,7 +1098,7 @@ set_frame_menubar (f, first_time, deep_p) wv->help = Qnil; first_wv = wv; - for (i = 0; i < last_i; i += 4) + for (i = 0; i < last_i; i++) { menu_items_n_panes = submenu_n_panes[i]; wv = digest_single_submenu (submenu_start[i], submenu_end[i],