X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Fbase%2Flib_freeall.c;h=ad7028efc41e1989c4355dcfb78a919f4281795c;hb=a7d99bb6b29485693a21c0cc70d7925f2211769c;hp=b06123d2593fa09288fe93beeea1987dc54ca115;hpb=ca276baf720e3a44721b9e18955d3f546955c6c8;p=ncurses.git diff --git a/ncurses/base/lib_freeall.c b/ncurses/base/lib_freeall.c index b06123d2..ad7028ef 100644 --- a/ncurses/base/lib_freeall.c +++ b/ncurses/base/lib_freeall.c @@ -40,7 +40,7 @@ extern int malloc_errfd; /* FIXME */ #endif -MODULE_ID("$Id: lib_freeall.c,v 1.49 2008/06/21 21:26:33 tom Exp $") +MODULE_ID("$Id: lib_freeall.c,v 1.52 2008/08/31 00:50:36 tom Exp $") /* * Free all ncurses data. This is used for testing only (there's no practical @@ -58,6 +58,9 @@ _nc_freeall(void) if (SP->_oldnum_list != 0) { FreeAndNull(SP->_oldnum_list); } + if (SP->_panelHook.destroy != 0) { + SP->_panelHook.destroy(SP->_panelHook.stdscr_pseudo_panel); + } } #endif if (SP != 0) { @@ -124,7 +127,10 @@ _nc_free_and_exit(int code) _nc_freeall(); #ifdef TRACE trace(0); /* close trace file, freeing its setbuf */ - free(_nc_varargs("?", 0)); + { + static va_list fake; + free(_nc_varargs("?", fake)); + } #endif fclose(stdout); FreeIfNeeded(last_setbuf);