Browse Source

Add freeing of owned strings in qmenu items

master
cancel 5 years ago
parent
commit
8b4a3bb691
  1. 8
      term_util.c

8
term_util.c

@ -449,8 +449,16 @@ void qmenu_push_to_nav(Qmenu* qm) {
void qmenu_free(Qmenu* qm) { void qmenu_free(Qmenu* qm) {
unpost_menu(qm->ncurses_menu); unpost_menu(qm->ncurses_menu);
free_menu(qm->ncurses_menu); free_menu(qm->ncurses_menu);
struct Qmenu_item_extra* extras = qmenu_item_extras_ptr(qm);
for (Usz i = 0; i < qm->items_count; ++i) { for (Usz i = 0; i < qm->items_count; ++i) {
ITEM* item = qm->ncurses_items[i];
struct Qmenu_item_extra* extra = qmenu_itemextra(extras, item);
char const* freed_str = NULL;
if (extra->owns_string)
freed_str = item_name(item);
free_item(qm->ncurses_items[i]); free_item(qm->ncurses_items[i]);
if (freed_str)
free((void*)freed_str);
} }
free(qm->ncurses_items); free(qm->ncurses_items);
free(qm); free(qm);

Loading…
Cancel
Save