comparison src/w32menu.c @ 95715:082ea596d318

(enum button_type, widget_value, local_heap, local_alloc): (local_free, malloc_widget_value, free_widget_value): (MENU_ITEMS_ITEM_NAME, MENU_ITEMS_ITEM_ENABLE, MENU_ITEMS_ITEM_VALUE): (MENU_ITEMS_ITEM_EQUIV_KEY, MENU_ITEMS_ITEM_DEFINITION): (MENU_ITEMS_ITEM_TYPE, MENU_ITEMS_ITEM_SELECTED, MENU_ITEMS_ITEM_HELP): (MENU_ITEMS_ITEM_LENGTH, enum menu_item_idx): Remove defs. (menu_items, menu_items_allocated, menu_items_used): (menu_items_n_panes, menu_items_submenu_depth): Remove global vars. (init_menu_items, finish_menu_items, discard_menu_items): (grow_menu_items, push_submenu_start, push_submenu_end): (push_left_right_boundary, push_menu_pane, push_menu_item, (keymap_panes, single_keymap_panes, list_of_panes, list_of_items): (free_menubar_widget_tree_value, parse_single_submenu): (update_submenu_strings): Remove functions. (xmalloc_widget_value): Remove and declare extern.
author Jason Rumney <jasonr@gnu.org>
date Mon, 09 Jun 2008 12:57:59 +0000
parents f8644ed7e357
children 7be18a029363
comparison
equal deleted inserted replaced
95714:51e7d268aef8 95715:082ea596d318
618 /* Free memory used by owner-drawn and help-echo strings. */ 618 /* Free memory used by owner-drawn and help-echo strings. */
619 w32_free_menu_strings (FRAME_W32_WINDOW (f)); 619 w32_free_menu_strings (FRAME_W32_WINDOW (f));
620 f->output_data.w32->menubar_active = 0; 620 f->output_data.w32->menubar_active = 0;
621 } 621 }
622 622
623 /* This recursively calls free_widget_value on the tree of widgets.
624 It must free all data that was malloc'ed for these widget_values.
625 In Emacs, many slots are pointers into the data of Lisp_Strings, and
626 must be left alone. */
627
628 void
629 free_menubar_widget_value_tree (wv)
630 widget_value *wv;
631 {
632 if (! wv) return;
633
634 wv->name = wv->value = wv->key = (char *) 0xDEADBEEF;
635
636 if (wv->contents && (wv->contents != (widget_value*)1))
637 {
638 free_menubar_widget_value_tree (wv->contents);
639 wv->contents = (widget_value *) 0xDEADBEEF;
640 }
641 if (wv->next)
642 {
643 free_menubar_widget_value_tree (wv->next);
644 wv->next = (widget_value *) 0xDEADBEEF;
645 }
646 BLOCK_INPUT;
647 free_widget_value (wv);
648 UNBLOCK_INPUT;
649 }
650 623
651 /* Set up data i menu_items for a menu bar item 624 /* Set up data i menu_items for a menu bar item
652 whose event type is ITEM_KEY (with string ITEM_NAME) 625 whose event type is ITEM_KEY (with string ITEM_NAME)
653 and whose contents come from the list of keymaps MAPS. */ 626 and whose contents come from the list of keymaps MAPS. */
654 627