From dcc68db1fd7789dd451f9a805e4dba2d72e88a58 Mon Sep 17 00:00:00 2001 From: William McBrine Date: Wed, 11 Sep 2019 10:02:57 -0400 Subject: [PATCH] To match the change in PDC_scr_open(), free SP in delscreen() rather than PDC_scr_free(). --- docs/IMPLEMNT.md | 3 +-- dos/pdcscrn.c | 2 -- os2/pdcscrn.c | 2 -- pdcurses/initscr.c | 5 +++-- sdl1/pdcscrn.c | 2 -- sdl2/pdcscrn.c | 2 -- wincon/pdcscrn.c | 3 --- x11/pdcscrn.c | 6 ------ 8 files changed, 4 insertions(+), 21 deletions(-) diff --git a/docs/IMPLEMNT.md b/docs/IMPLEMNT.md index 0d8b74be..a4c36ed7 100644 --- a/docs/IMPLEMNT.md +++ b/docs/IMPLEMNT.md @@ -246,8 +246,7 @@ the cursor to the lower left corner. (The X11 port does nothing.) ### void PDC_scr_free(void); -Frees the memory for SP allocated by PDC_scr_open(). Called by -delscreen(). +Free any memory allocated by PDC_scr_open(). Called by delscreen(). ### int PDC_scr_open(int argc, char **argv); diff --git a/dos/pdcscrn.c b/dos/pdcscrn.c index 57372b52..b5fa6a9b 100644 --- a/dos/pdcscrn.c +++ b/dos/pdcscrn.c @@ -479,8 +479,6 @@ void PDC_scr_close(void) void PDC_scr_free(void) { - if (SP) - free(SP); } /* open the physical screen -- miscellaneous initialization, may save diff --git a/os2/pdcscrn.c b/os2/pdcscrn.c index ee668829..e6efa464 100644 --- a/os2/pdcscrn.c +++ b/os2/pdcscrn.c @@ -79,8 +79,6 @@ void PDC_scr_close(void) void PDC_scr_free(void) { - if (SP) - free(SP); } /* open the physical screen -- miscellaneous initialization, may save diff --git a/pdcurses/initscr.c b/pdcurses/initscr.c index e433bb55..cddf8af6 100644 --- a/pdcurses/initscr.c +++ b/pdcurses/initscr.c @@ -294,7 +294,7 @@ void delscreen(SCREEN *sp) { PDC_LOG(("delscreen() - called\n")); - if (sp != SP) + if (!SP || sp != SP) return; PDC_slk_free(); /* free the soft label keys, if needed */ @@ -308,8 +308,9 @@ void delscreen(SCREEN *sp) SP->alive = FALSE; - PDC_scr_free(); /* free SP */ + PDC_scr_free(); + free(SP); SP = (SCREEN *)NULL; } diff --git a/sdl1/pdcscrn.c b/sdl1/pdcscrn.c index 61f3775e..0c39822d 100644 --- a/sdl1/pdcscrn.c +++ b/sdl1/pdcscrn.c @@ -83,8 +83,6 @@ void PDC_scr_close(void) void PDC_scr_free(void) { - if (SP) - free(SP); } static void _initialize_colors(void) diff --git a/sdl2/pdcscrn.c b/sdl2/pdcscrn.c index 7600d51f..fd12b414 100644 --- a/sdl2/pdcscrn.c +++ b/sdl2/pdcscrn.c @@ -93,8 +93,6 @@ void PDC_scr_close(void) void PDC_scr_free(void) { - if (SP) - free(SP); } static void _initialize_colors(void) diff --git a/wincon/pdcscrn.c b/wincon/pdcscrn.c index 40d47c57..cf65eecb 100644 --- a/wincon/pdcscrn.c +++ b/wincon/pdcscrn.c @@ -359,9 +359,6 @@ void PDC_scr_close(void) void PDC_scr_free(void) { - if (SP) - free(SP); - if (pdc_con_out != std_con_out) { CloseHandle(pdc_con_out); diff --git a/x11/pdcscrn.c b/x11/pdcscrn.c index 8f060d7c..dff1d6a5 100644 --- a/x11/pdcscrn.c +++ b/x11/pdcscrn.c @@ -170,12 +170,6 @@ void PDC_scr_close(void) void PDC_scr_free(void) { - if (!SP) - return; - - free(SP); - SP = NULL; - if (icon_pixmap) XFreePixmap(XCURSESDISPLAY, icon_pixmap); if (icon_pixmap_mask)