diff --git a/ChangeLog b/ChangeLog index ac35318a3c..978a44b587 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-03-20 Jan Schmidt + + * 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 * configure.ac: diff --git a/gst/goom/filters.c b/gst/goom/filters.c index ee598100cf..e3153aa567 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 1734a31611..d66ffe25de 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); }