From 95895823f75108cbfed2697498e4e097f493b236 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 19 Oct 2009 00:49:29 +0000 Subject: Fix some memory leaks. dmnsn_delete_pigment() was not using the free_fn, and kD splay trees were not being deleted after raytracing finished. --- libdimension/texture.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libdimension/texture.c') diff --git a/libdimension/texture.c b/libdimension/texture.c index a5ebd90..3867628 100644 --- a/libdimension/texture.c +++ b/libdimension/texture.c @@ -32,11 +32,16 @@ dmnsn_new_pigment() return pigment; } -/* Free a dummy pigment */ +/* Free a pigment */ void dmnsn_delete_pigment(dmnsn_pigment *pigment) { - free(pigment); + if (pigment) { + if (pigment->free_fn) { + (*pigment->free_fn)(pigment->ptr); + } + free(pigment); + } } /* Allocate a dummy texture */ -- cgit v1.2.3