From 8b4a3bb6919f5ce3a6c27774e489d48be91d5ae7 Mon Sep 17 00:00:00 2001 From: cancel Date: Mon, 6 Jan 2020 01:22:19 +0900 Subject: [PATCH] Add freeing of owned strings in qmenu items --- term_util.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/term_util.c b/term_util.c index d16b78b..5a5c2f1 100644 --- a/term_util.c +++ b/term_util.c @@ -449,8 +449,16 @@ void qmenu_push_to_nav(Qmenu* qm) { void qmenu_free(Qmenu* qm) { unpost_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) { + 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]); + if (freed_str) + free((void*)freed_str); } free(qm->ncurses_items); free(qm);