X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/79f5556a7a75ed21c4fafa04f02adb81822a57f9..d562d7a44cf4abe2ea23ee6fc2982a1e41bc27fb:/src/menu.c diff --git a/src/menu.c b/src/menu.c index 7a3edcb6f4..587f55e14d 100644 --- a/src/menu.c +++ b/src/menu.c @@ -21,6 +21,7 @@ along with GNU Emacs. If not, see . */ #include #include #include +#include /* for INT_MAX */ #include "lisp.h" #include "keyboard.h" @@ -66,6 +67,9 @@ Lisp_Object menu_items; /* If non-nil, means that the global vars defined here are already in use. Used to detect cases where we try to re-enter this non-reentrant code. */ +#if ! (defined USE_GTK || defined USE_MOTIF) +static +#endif Lisp_Object menu_items_inuse; /* Number of slots currently allocated in menu_items. */ @@ -176,6 +180,8 @@ save_menu_items (void) static void grow_menu_items (void) { + if ((INT_MAX - MENU_ITEMS_PANE_LENGTH) / 2 < menu_items_allocated) + memory_full (SIZE_MAX); menu_items_allocated *= 2; menu_items = larger_vector (menu_items, menu_items_allocated, Qnil); } @@ -358,7 +364,7 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk return; } -#if defined(HAVE_X_WINDOWS) || defined(MSDOS) +#if defined (HAVE_X_WINDOWS) || defined (MSDOS) #ifndef HAVE_BOXES /* Simulate radio buttons and toggle boxes by putting a prefix in front of them. */ @@ -971,7 +977,7 @@ find_and_return_menu_selection (FRAME_PTR f, int keymaps, void *client_data) prefix = entry = Qnil; i = 0; subprefix_stack = - (Lisp_Object *)alloca(menu_items_used * sizeof (Lisp_Object)); + (Lisp_Object *)alloca (menu_items_used * sizeof (Lisp_Object)); while (i < menu_items_used) { @@ -1145,13 +1151,13 @@ no quit occurs and `x-popup-menu' returns nil. */) #else /* not HAVE_X_WINDOWS */ Lisp_Object bar_window; enum scroll_bar_part part; - unsigned long time; + Time time; void (*mouse_position_hook) (struct frame **, int, Lisp_Object *, enum scroll_bar_part *, Lisp_Object *, Lisp_Object *, - unsigned long *) = + Time *) = FRAME_TERMINAL (new_f)->mouse_position_hook; if (mouse_position_hook)