summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/goom/filters.c7
-rw-r--r--gst/goom/goom_core.c7
3 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ac35318a..978a44b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-20 Jan Schmidt <thaytan@mad.scientist.com>
+
+ * gst/goom/filters.c: (zoomFilterDestroy):
+ * gst/goom/goom_core.c: (goom_close):
+ Free filter data when cleaning up. (Fixes: #334995)
+
2006-03-17 Tim-Philipp Müller <tim at centricular dot net>
* configure.ac:
diff --git a/gst/goom/filters.c b/gst/goom/filters.c
index ee598100..e3153aa5 100644
--- a/gst/goom/filters.c
+++ b/gst/goom/filters.c
@@ -413,8 +413,13 @@ zoomFilterSetResolution (GoomData * gd, ZoomFilterData * zf)
void
zoomFilterDestroy (ZoomFilterData * zf)
{
- if (zf)
+ if (zf) {
+ if (zf->firedec)
+ free (zf->firedec);
+ if (zf->buffer)
+ free (zf->buffer);
free (zf);
+ }
}
/*===============================================================*/
diff --git a/gst/goom/goom_core.c b/gst/goom/goom_core.c
index 1734a316..d66ffe25 100644
--- a/gst/goom/goom_core.c
+++ b/gst/goom/goom_core.c
@@ -368,8 +368,7 @@ goom_update (GoomData * goomdata, gint16 data[2][512])
/* si on est dans un goom : afficher les lignes... */
if (goomdata->agoom > 15)
- goom_lines
- (goomdata, data, ((pzfd->middleX == resolx / 2)
+ goom_lines (goomdata, data, ((pzfd->middleX == resolx / 2)
&& (pzfd->middleY == resoly / 2)
&& (pzfd->mode != WATER_MODE))
? (goomdata->lineMode / 10) : 0, goomdata->p2, goomdata->agoom - 15);
@@ -404,6 +403,10 @@ goom_close (GoomData * goomdata)
free (goomdata->pixel);
if (goomdata->back != NULL)
free (goomdata->back);
+ if (goomdata->zfd != NULL) {
+ zoomFilterDestroy (goomdata->zfd);
+ goomdata->zfd = NULL;
+ }
goomdata->pixel = goomdata->back = NULL;
RAND_CLOSE (goomdata);
}