From d80fd8a014c042157288912c635fd602c8adb85a Mon Sep 17 00:00:00 2001 From: PatR Date: Sat, 9 Feb 2019 15:30:53 -0800 Subject: [PATCH] curses status cleanup Stop the last of the memory leaks occuring during basic usage. --- include/wincurs.h | 2 +- win/curses/cursmain.c | 2 +- win/curses/cursstat.c | 7 ++++--- win/curses/curswins.c | 4 +--- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/include/wincurs.h b/include/wincurs.h index 43fdb9de6..cb43f3729 100644 --- a/include/wincurs.h +++ b/include/wincurs.h @@ -181,7 +181,7 @@ extern void curses_del_menu(winid wid); /* cursstat.c */ extern void curses_status_init(void); -extern void curses_teardown_status(void); +extern void curses_status_finish(void); extern void curses_status_update(int, genericptr_t, int, int, int, unsigned long *); diff --git a/win/curses/cursmain.c b/win/curses/cursmain.c index 8ae781a98..e792c9376 100644 --- a/win/curses/cursmain.c +++ b/win/curses/cursmain.c @@ -75,7 +75,7 @@ struct window_procs curses_procs = { genl_getmsghistory, genl_putmsghistory, curses_status_init, - genl_status_finish, + curses_status_finish, genl_status_enablefield, curses_status_update, genl_can_suspend_yes, diff --git a/win/curses/cursstat.c b/win/curses/cursstat.c index f1ad01741..67287ea88 100644 --- a/win/curses/cursstat.c +++ b/win/curses/cursstat.c @@ -58,15 +58,16 @@ curses_status_init() } void -curses_teardown_status() +curses_status_finish() { #ifdef STATUS_HILITES int i; for (i = 0; i < MAXBLSTATS; ++i) { - free(status_vals_long[i]); - status_vals_long[i] = (char *) 0; + if (status_vals_long[i]) + free(status_vals_long[i]), status_vals_long[i] = (char *) 0; } + genl_status_finish(); #endif /* STATUS_HILITES */ return; } diff --git a/win/curses/curswins.c b/win/curses/curswins.c index 45cd0f7ef..e78055475 100644 --- a/win/curses/curswins.c +++ b/win/curses/curswins.c @@ -313,9 +313,7 @@ curses_del_nhwin(winid wid) return; } if (wid == MESSAGE_WIN) { - curses_teardown_messages(); - } else if (wid == STATUS_WIN) { - curses_teardown_status(); + curses_teardown_messages(); } nhwins[wid].curwin = NULL; nhwins[wid].nhwin = -1;