aboutsummaryrefslogtreecommitdiffstats
path: root/src/pgtkmenu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pgtkmenu.c')
-rw-r--r--src/pgtkmenu.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/pgtkmenu.c b/src/pgtkmenu.c
index a2e09b6cb58..54e1c3739cf 100644
--- a/src/pgtkmenu.c
+++ b/src/pgtkmenu.c
@@ -596,14 +596,10 @@ pgtk_menu_show (struct frame *f, int x, int y, int menuflags,
596{ 596{
597 int i; 597 int i;
598 widget_value *wv, *save_wv = 0, *first_wv = 0, *prev_wv = 0; 598 widget_value *wv, *save_wv = 0, *first_wv = 0, *prev_wv = 0;
599 widget_value **submenu_stack 599 widget_value **submenu_stack;
600 = alloca (menu_items_used * sizeof *submenu_stack); 600 Lisp_Object *subprefix_stack;
601 Lisp_Object *subprefix_stack
602 = alloca (menu_items_used * sizeof *subprefix_stack);
603 int submenu_depth = 0; 601 int submenu_depth = 0;
604 602
605 specpdl_ref specpdl_count = SPECPDL_INDEX ();
606
607 eassert (FRAME_PGTK_P (f)); 603 eassert (FRAME_PGTK_P (f));
608 604
609 *error_name = NULL; 605 *error_name = NULL;
@@ -614,6 +610,11 @@ pgtk_menu_show (struct frame *f, int x, int y, int menuflags,
614 return Qnil; 610 return Qnil;
615 } 611 }
616 612
613 USE_SAFE_ALLOCA;
614 SAFE_NALLOCA (submenu_stack, 1, menu_items_used);
615 SAFE_NALLOCA (subprefix_stack, 1, menu_items_used);
616 specpdl_ref specpdl_count = SPECPDL_INDEX ();
617
617 block_input (); 618 block_input ();
618 619
619 /* Create a tree of widget_value objects 620 /* Create a tree of widget_value objects
@@ -830,6 +831,7 @@ pgtk_menu_show (struct frame *f, int x, int y, int menuflags,
830 entry = Fcons (subprefix_stack[j], entry); 831 entry = Fcons (subprefix_stack[j], entry);
831 } 832 }
832 unblock_input (); 833 unblock_input ();
834 SAFE_FREE ();
833 return entry; 835 return entry;
834 } 836 }
835 i += MENU_ITEMS_ITEM_LENGTH; 837 i += MENU_ITEMS_ITEM_LENGTH;
@@ -844,6 +846,7 @@ pgtk_menu_show (struct frame *f, int x, int y, int menuflags,
844 } 846 }
845 847
846 unblock_input (); 848 unblock_input ();
849 SAFE_FREE ();
847 return Qnil; 850 return Qnil;
848} 851}
849 852