aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--grid.c8
-rw-r--r--loopy.c2
2 files changed, 10 insertions, 0 deletions
diff --git a/grid.c b/grid.c
index d73e521..d7e6442 100644
--- a/grid.c
+++ b/grid.c
@@ -454,6 +454,14 @@ static void grid_trim_vigorously(grid *g)
dots[i] = (dots[i] ? newdots++ : -1);
/*
+ * Free the dynamically allocated 'dots' pointer lists in faces
+ * we're going to discard.
+ */
+ for (i = 0; i < g->num_faces; i++)
+ if (faces[i] < 0)
+ sfree(g->faces[i].dots);
+
+ /*
* Go through and compact the arrays.
*/
for (i = 0; i < g->num_dots; i++)
diff --git a/loopy.c b/loopy.c
index 6e97acd..43e96a7 100644
--- a/loopy.c
+++ b/loopy.c
@@ -917,6 +917,8 @@ static game_drawstate *game_new_drawstate(drawing *dr, game_state *state)
static void game_free_drawstate(drawing *dr, game_drawstate *ds)
{
+ sfree(ds->textx);
+ sfree(ds->texty);
sfree(ds->clue_error);
sfree(ds->clue_satisfied);
sfree(ds->lines);