diff -Naur goom-origin/src/convolve_fx.c goom/src/convolve_fx.c --- goom-origin/src/convolve_fx.c 2005-02-07 14:46:42.000000000 +0100 +++ goom/src/convolve_fx.c 2009-03-23 11:16:13.000000000 +0100 @@ -107,7 +107,9 @@ } static void convolve_free(VisualFX *_this) { - free (_this->fx_data); + ConvData *data = _this->fx_data; + free (data->params.params); + free (data); } static void create_output_with_brightness(VisualFX *_this, Pixel *src, Pixel *dest, diff -Naur goom-origin/src/filters.c goom/src/filters.c --- goom-origin/src/filters.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/filters.c 2009-03-23 10:46:34.000000000 +0100 @@ -731,6 +731,12 @@ static void zoomFilterVisualFXWrapper_free (struct _VISUAL_FX *_this) { + ZoomFilterFXWrapperData *data = (ZoomFilterFXWrapperData*)_this->fx_data; + if (data->brutS) free (data->freebrutS); + if (data->brutD) free (data->freebrutD); + if (data->brutT) free (data->freebrutT); + free (data->firedec); + free (data->params.params); free(_this->fx_data); } diff -Naur goom-origin/src/flying_stars_fx.c goom/src/flying_stars_fx.c --- goom-origin/src/flying_stars_fx.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/flying_stars_fx.c 2009-03-23 11:18:57.000000000 +0100 @@ -129,7 +129,10 @@ } static void fs_free(VisualFX *_this) { - free (_this->fx_data); + FSData *data = (FSData*)_this->fx_data; + free (data->stars); + free (data->params.params); + free (data); } diff -Naur goom-origin/src/gfontlib.c goom/src/gfontlib.c --- goom-origin/src/gfontlib.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/gfontlib.c 2009-03-23 09:06:27.000000000 +0100 @@ -126,6 +126,8 @@ small_font_width [32] = font_width [32]/2; font_chars [32] = 0; small_font_chars [32] = 0; + free( gfont ); + free( font_pos ); } void goom_draw_text (Pixel * buf,int resolx,int resoly, diff -Naur goom-origin/src/goom_core.c goom/src/goom_core.c --- goom-origin/src/goom_core.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/goom_core.c 2009-03-23 11:21:11.000000000 +0100 @@ -765,6 +765,15 @@ goomInfo->star_fx.free(&goomInfo->star_fx); goomInfo->tentacles_fx.free(&goomInfo->tentacles_fx); goomInfo->zoomFilter_fx.free(&goomInfo->zoomFilter_fx); + + // Release info visual + free (goomInfo->params); + free (goomInfo->sound.params.params); + + // Release PluginInfo + free (goomInfo->visuals); + gsl_free (goomInfo->scanner); + gsl_free (goomInfo->main_scanner); free(goomInfo); } diff -Naur goom-origin/src/goomsl.c goom/src/goomsl.c --- goom-origin/src/goomsl.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/goomsl.c 2009-03-23 11:07:25.000000000 +0100 @@ -90,6 +90,7 @@ void iflow_free(InstructionFlow *_this) { /* {{{ */ + free(_this->instr); goom_hash_free(_this->labels); free(_this); /*TODO: finir cette fonction */ } /* }}} */ @@ -1422,8 +1423,12 @@ void gsl_free(GoomSL *gss) { /* {{{ */ iflow_free(gss->iflow); - free(gss->vars); - free(gss->functions); + goom_hash_free(gss->vars); + goom_hash_free(gss->functions); + goom_hash_free(gss->structIDS); + free(gss->gsl_struct); + goom_heap_delete(gss->data_heap); + free(gss->ptrArray); free(gss); } /* }}} */ diff -Naur goom-origin/src/lines.c goom/src/lines.c --- goom-origin/src/lines.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/lines.c 2009-03-23 10:28:26.000000000 +0100 @@ -199,6 +199,7 @@ goom_lines_free (GMLine ** l) { free ((*l)->points); + free ((*l)->points2); free (*l); l = NULL; } diff -Naur goom-origin/src/tentacle3d.c goom/src/tentacle3d.c --- goom-origin/src/tentacle3d.c 2005-02-07 14:46:41.000000000 +0100 +++ goom/src/tentacle3d.c 2009-03-23 11:13:38.000000000 +0100 @@ -90,7 +90,9 @@ } static void tentacle_fx_free(VisualFX *_this) { - tentacle_free((TentacleFXData*)_this->fx_data); + TentacleFXData *data = (TentacleFXData*)_this->fx_data; + free(data->params.params); + tentacle_free(data); free(_this->fx_data); } @@ -106,6 +108,13 @@ static void tentacle_free (TentacleFXData *data) { /* TODO : un vrai FREE GRID!! */ + int tmp; + for (tmp=0;tmpgrille[tmp]; + free (g->surf.vertex); + free (g->surf.svertex); + free (g); + } free (data->vals); }