aboutsummaryrefslogtreecommitdiff
path: root/inertia.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-09-01 11:59:51 +0000
committerSimon Tatham <anakin@pobox.com>2005-09-01 11:59:51 +0000
commit04e26aaa7b04af90d8d42e77d3d9ccc1dade678c (patch)
treea7f73f2565c8c699e14850c96585e1a8dafa56df /inertia.c
parent94b36c11e00bb740813506b0d3911f90f1829941 (diff)
downloadpuzzles-04e26aaa7b04af90d8d42e77d3d9ccc1dade678c.zip
puzzles-04e26aaa7b04af90d8d42e77d3d9ccc1dade678c.tar.gz
puzzles-04e26aaa7b04af90d8d42e77d3d9ccc1dade678c.tar.bz2
puzzles-04e26aaa7b04af90d8d42e77d3d9ccc1dade678c.tar.xz
James H's memory leak fixes to Inertia.
[originally from svn r6255]
Diffstat (limited to 'inertia.c')
-rw-r--r--inertia.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/inertia.c b/inertia.c
index fc213da..95bdcc8 100644
--- a/inertia.c
+++ b/inertia.c
@@ -221,6 +221,9 @@ static struct solver_scratch *new_scratch(int w, int h)
static void free_scratch(struct solver_scratch *sc)
{
+ sfree(sc->reachable_from);
+ sfree(sc->reachable_to);
+ sfree(sc->positions);
sfree(sc);
}
@@ -940,6 +943,8 @@ static game_drawstate *game_new_drawstate(drawing *dr, game_state *state)
static void game_free_drawstate(drawing *dr, game_drawstate *ds)
{
+ if (ds->player_background)
+ blitter_free(dr, ds->player_background);
sfree(ds->grid);
sfree(ds);
}