From: Laurent Mazet Date: Wed, 5 Jun 2024 22:09:06 +0000 (+0200) Subject: fix memory leaks X-Git-Tag: v1.0~40 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=2cb580b2eab5d4e458d680aac12ca91cf13a3c57;p=scrabble.git fix memory leaks --- diff --git a/function.c b/function.c index 0a96309..e138664 100644 --- a/function.c +++ b/function.c @@ -28,6 +28,14 @@ play_t *initplay (int xsize, int ysize) return play; } +void freeplay (play_t *play) +{ + if (play) { + free (play->tab); + } + free (play); +} + int putletter (play_t *play, char letter, int x, int y) { int ret = (letter != '\0') && (play->tab[x + play->xsize * y] == ' '); @@ -62,6 +70,14 @@ draw_t *initdraw (bag_t *bag) return draw; } +void freedraw (draw_t *draw) +{ + if (draw) { + free (draw->tiles); + } + free (draw); +} + draw_t *retrievetiles (draw_t *draw, int nbtiles, draw_t *game) { draw_t *ret = (game == NULL) ? newdraw (nbtiles) : game; @@ -87,12 +103,6 @@ draw_t *retrievetiles (draw_t *draw, int nbtiles, draw_t *game) return ret; } -void freedraw (draw_t *draw) -{ - free (draw->tiles); - free (draw); -} - char getnextletter (draw_t *game) { char letter = 0; diff --git a/function.h b/function.h index 2fc1f70..79934e5 100644 --- a/function.h +++ b/function.h @@ -7,6 +7,8 @@ int contains (char *list, char *str); play_t *initplay (int xsize, int ysize); +void freeplay (play_t *play); + int putletter (play_t *play, char letter, int x, int y); void removeletter (play_t *play, int x, int y); @@ -17,6 +19,8 @@ draw_t *newdraw (int nbtiles); draw_t *initdraw (bag_t *bag); +void freedraw (draw_t *draw); + draw_t *retrievetiles (draw_t *draw, int nbtiles, draw_t *game); void freedraw (draw_t *draw); diff --git a/scrabble.c b/scrabble.c index b42c61c..73908b5 100644 --- a/scrabble.c +++ b/scrabble.c @@ -251,6 +251,10 @@ int main (int argc, char *argv[]) endwin (); + freeplay (play); + freedraw (game); + freedraw (draw); + return 0; }