Commit 4e11c343 authored by Jan Schmidt's avatar Jan Schmidt

gst/goom/: Free a bunch of stuff, and initialise things to fix leaks and...

gst/goom/: Free a bunch of stuff, and initialise things to fix leaks and valgrind warnings in the testsuite.

Original commit message from CVS:
* gst/goom/config_param.c: (goom_plugin_parameters_free):
* gst/goom/convolve_fx.c: (convolve_init), (convolve_free):
* gst/goom/filters.c: (zoomFilterVisualFXWrapper_free):
* gst/goom/flying_stars_fx.c: (fs_free):
* gst/goom/goom_config_param.h:
* gst/goom/goom_core.c: (goom_init), (goom_close):
* gst/goom/goom_plugin_info.h:
* gst/goom/gstgoom.c: (gst_goom_finalize):
* gst/goom/lines.c: (goom_lines_free):
* gst/goom/plugin_info.c: (plugin_info_init), (plugin_info_free):
* gst/goom/surf3d.c: (grid3d_free):
* gst/goom/surf3d.h:
* gst/goom/tentacle3d.c: (tentacle_free):
Free a bunch of stuff, and initialise things to fix leaks
and valgrind warnings in the testsuite.
Fixes: #529268
parent d2af0c69
2008-04-22 Jan Schmidt <jan.schmidt@sun.com>
* gst/goom/config_param.c: (goom_plugin_parameters_free):
* gst/goom/convolve_fx.c: (convolve_init), (convolve_free):
* gst/goom/filters.c: (zoomFilterVisualFXWrapper_free):
* gst/goom/flying_stars_fx.c: (fs_free):
* gst/goom/goom_config_param.h:
* gst/goom/goom_core.c: (goom_init), (goom_close):
* gst/goom/goom_plugin_info.h:
* gst/goom/gstgoom.c: (gst_goom_finalize):
* gst/goom/lines.c: (goom_lines_free):
* gst/goom/plugin_info.c: (plugin_info_init), (plugin_info_free):
* gst/goom/surf3d.c: (grid3d_free):
* gst/goom/surf3d.h:
* gst/goom/tentacle3d.c: (tentacle_free):
Free a bunch of stuff, and initialise things to fix leaks
and valgrind warnings in the testsuite.
Fixes: #529268
2008-04-21 Wim Taymans <wim.taymans@collabora.co.uk> 2008-04-21 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init), (request_pt_map), * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init), (request_pt_map),
......
...@@ -111,6 +111,12 @@ goom_plugin_parameters (const char *name, int nb) ...@@ -111,6 +111,12 @@ goom_plugin_parameters (const char *name, int nb)
return p; return p;
} }
void
goom_plugin_parameters_free (PluginParameters * p)
{
free (p->params);
}
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
......
...@@ -105,6 +105,8 @@ convolve_init (VisualFX * _this, PluginInfo * info) ...@@ -105,6 +105,8 @@ convolve_init (VisualFX * _this, PluginInfo * info)
data->params.params[3] = &data->factor_p; data->params.params[3] = &data->factor_p;
data->params.params[4] = 0; data->params.params[4] = 0;
data->h_height = 0;
/* init rotozoom tables */ /* init rotozoom tables */
compute_tables (_this, info); compute_tables (_this, info);
data->theta = 0; data->theta = 0;
...@@ -119,6 +121,10 @@ convolve_init (VisualFX * _this, PluginInfo * info) ...@@ -119,6 +121,10 @@ convolve_init (VisualFX * _this, PluginInfo * info)
static void static void
convolve_free (VisualFX * _this) convolve_free (VisualFX * _this)
{ {
ConvData *data = (ConvData *) _this->fx_data;
goom_plugin_parameters_free (&data->params);
free (_this->fx_data); free (_this->fx_data);
} }
......
...@@ -793,6 +793,19 @@ zoomFilterVisualFXWrapper_init (struct _VISUAL_FX *_this, PluginInfo * info) ...@@ -793,6 +793,19 @@ zoomFilterVisualFXWrapper_init (struct _VISUAL_FX *_this, PluginInfo * info)
static void static void
zoomFilterVisualFXWrapper_free (struct _VISUAL_FX *_this) zoomFilterVisualFXWrapper_free (struct _VISUAL_FX *_this)
{ {
ZoomFilterFXWrapperData *data = (ZoomFilterFXWrapperData *) _this->fx_data;
if (data->freebrutT)
free (data->freebrutT);
if (data->freebrutS)
free (data->freebrutS);
if (data->freebrutD)
free (data->freebrutD);
if (data->firedec)
free (data->firedec);
goom_plugin_parameters_free (_this->params);
free (_this->fx_data); free (_this->fx_data);
} }
......
...@@ -136,6 +136,11 @@ fs_init (VisualFX * _this, PluginInfo * info) ...@@ -136,6 +136,11 @@ fs_init (VisualFX * _this, PluginInfo * info)
static void static void
fs_free (VisualFX * _this) fs_free (VisualFX * _this)
{ {
FSData *data = (FSData *) _this->fx_data;
goom_plugin_parameters_free (&data->params);
free (data->stars);
free (_this->fx_data); free (_this->fx_data);
} }
......
...@@ -100,6 +100,7 @@ typedef struct _PARAMETERS { ...@@ -100,6 +100,7 @@ typedef struct _PARAMETERS {
} PluginParameters; } PluginParameters;
PluginParameters goom_plugin_parameters(const char *name, int nb); PluginParameters goom_plugin_parameters(const char *name, int nb);
void goom_plugin_parameters_free(PluginParameters *p);
#define secure_param goom_secure_param #define secure_param goom_secure_param
#define secure_f_param goom_secure_f_param #define secure_f_param goom_secure_f_param
......
...@@ -64,6 +64,15 @@ goom_init (guint32 resx, guint32 resy) ...@@ -64,6 +64,15 @@ goom_init (guint32 resx, guint32 resy)
plugin_info_init (goomInfo, 4); plugin_info_init (goomInfo, 4);
goomInfo->screen.width = resx;
goomInfo->screen.height = resy;
goomInfo->screen.size = resx * resy;
init_buffers (goomInfo, goomInfo->screen.size);
goomInfo->gRandom = goom_random_init ((uintptr_t) goomInfo->pixel);
goomInfo->cycle = 0;
goomInfo->star_fx = flying_star_create (); goomInfo->star_fx = flying_star_create ();
goomInfo->star_fx.init (&goomInfo->star_fx, goomInfo); goomInfo->star_fx.init (&goomInfo->star_fx, goomInfo);
...@@ -81,15 +90,6 @@ goom_init (guint32 resx, guint32 resy) ...@@ -81,15 +90,6 @@ goom_init (guint32 resx, guint32 resy)
plugin_info_add_visual (goomInfo, 2, &goomInfo->star_fx); plugin_info_add_visual (goomInfo, 2, &goomInfo->star_fx);
plugin_info_add_visual (goomInfo, 3, &goomInfo->convolve_fx); plugin_info_add_visual (goomInfo, 3, &goomInfo->convolve_fx);
goomInfo->screen.width = resx;
goomInfo->screen.height = resy;
goomInfo->screen.size = resx * resy;
init_buffers (goomInfo, goomInfo->screen.size);
goomInfo->gRandom = goom_random_init ((uintptr_t) goomInfo->pixel);
goomInfo->cycle = 0;
goomInfo->ifs_fx = ifs_visualfx_create (); goomInfo->ifs_fx = ifs_visualfx_create ();
goomInfo->ifs_fx.init (&goomInfo->ifs_fx, goomInfo); goomInfo->ifs_fx.init (&goomInfo->ifs_fx, goomInfo);
...@@ -782,6 +782,7 @@ goom_close (PluginInfo * goomInfo) ...@@ -782,6 +782,7 @@ goom_close (PluginInfo * goomInfo)
goomInfo->tentacles_fx.free (&goomInfo->tentacles_fx); goomInfo->tentacles_fx.free (&goomInfo->tentacles_fx);
goomInfo->zoomFilter_fx.free (&goomInfo->zoomFilter_fx); goomInfo->zoomFilter_fx.free (&goomInfo->zoomFilter_fx);
plugin_info_free (goomInfo);
free (goomInfo); free (goomInfo);
} }
......
...@@ -155,6 +155,7 @@ struct _PLUGIN_INFO { ...@@ -155,6 +155,7 @@ struct _PLUGIN_INFO {
}; };
void plugin_info_init(PluginInfo *p, int nbVisual); void plugin_info_init(PluginInfo *p, int nbVisual);
void plugin_info_free(PluginInfo *p);
/* i = [0..p->nbVisual-1] */ /* i = [0..p->nbVisual-1] */
void plugin_info_add_visual(PluginInfo *p, int i, VisualFX *visual); void plugin_info_add_visual(PluginInfo *p, int i, VisualFX *visual);
......
...@@ -196,6 +196,7 @@ gst_goom_finalize (GObject * object) ...@@ -196,6 +196,7 @@ gst_goom_finalize (GObject * object)
GstGoom *goom = GST_GOOM (object); GstGoom *goom = GST_GOOM (object);
goom_close (goom->plugin); goom_close (goom->plugin);
goom->plugin = NULL;
g_object_unref (goom->adapter); g_object_unref (goom->adapter);
......
...@@ -199,6 +199,7 @@ goom_lines_init (PluginInfo * goomInfo, int rx, int ry, ...@@ -199,6 +199,7 @@ goom_lines_init (PluginInfo * goomInfo, int rx, int ry,
void void
goom_lines_free (GMLine ** l) goom_lines_free (GMLine ** l)
{ {
free ((*l)->points2);
free ((*l)->points); free ((*l)->points);
free (*l); free (*l);
l = NULL; l = NULL;
......
...@@ -98,6 +98,9 @@ plugin_info_init (PluginInfo * pp, int nbVisuals) ...@@ -98,6 +98,9 @@ plugin_info_init (PluginInfo * pp, int nbVisuals)
p.sound.prov_max = 0; p.sound.prov_max = 0;
p.sound.goom_limit = 1; p.sound.goom_limit = 1;
p.sound.allTimesMax = 1; p.sound.allTimesMax = 1;
p.sound.timeSinceLastGoom = 1;
p.sound.timeSinceLastBigGoom = 1;
p.sound.cycle = 0;
p.sound.volume_p = secure_f_feedback ("Sound Volume"); p.sound.volume_p = secure_f_feedback ("Sound Volume");
p.sound.accel_p = secure_f_feedback ("Sound Acceleration"); p.sound.accel_p = secure_f_feedback ("Sound Acceleration");
...@@ -122,6 +125,7 @@ plugin_info_init (PluginInfo * pp, int nbVisuals) ...@@ -122,6 +125,7 @@ plugin_info_init (PluginInfo * pp, int nbVisuals)
p.sound.params = plugin_parameters ("Sound", 11); p.sound.params = plugin_parameters ("Sound", 11);
p.nbParams = 0; p.nbParams = 0;
p.params = NULL;
p.nbVisuals = nbVisuals; p.nbVisuals = nbVisuals;
p.visuals = (VisualFX **) malloc (sizeof (VisualFX *) * nbVisuals); p.visuals = (VisualFX **) malloc (sizeof (VisualFX *) * nbVisuals);
...@@ -225,3 +229,13 @@ plugin_info_add_visual (PluginInfo * p, int i, VisualFX * visual) ...@@ -225,3 +229,13 @@ plugin_info_add_visual (PluginInfo * p, int i, VisualFX * visual)
} }
} }
} }
void
plugin_info_free (PluginInfo * p)
{
goom_plugin_parameters_free (&p->sound.params);
if (p->params)
free (p->params);
free (p->visuals);
}
...@@ -36,6 +36,17 @@ grid3d_new (int sizex, int defx, int sizez, int defz, v3d center) ...@@ -36,6 +36,17 @@ grid3d_new (int sizex, int defx, int sizez, int defz, v3d center)
return g; return g;
} }
void
grid3d_free (grid3d * g)
{
surf3d *s = &(g->surf);
free (s->vertex);
free (s->svertex);
free (g);
}
void void
grid3d_draw (PluginInfo * plug, grid3d * g, int color, int colorlow, grid3d_draw (PluginInfo * plug, grid3d * g, int color, int colorlow,
int dist, Pixel * buf, Pixel * back, int W, int H) int dist, Pixel * buf, Pixel * back, int W, int H)
......
...@@ -27,6 +27,7 @@ typedef struct { ...@@ -27,6 +27,7 @@ typedef struct {
/* works on grid3d */ /* works on grid3d */
grid3d *grid3d_new (int sizex, int defx, int sizez, int defz, v3d center); grid3d *grid3d_new (int sizex, int defx, int sizez, int defz, v3d center);
void grid3d_free (grid3d *g);
void grid3d_update (grid3d *s, float angle, float *vals, float dist); void grid3d_update (grid3d *s, float angle, float *vals, float dist);
/* low level */ /* low level */
......
...@@ -125,8 +125,14 @@ tentacle_fx_create (void) ...@@ -125,8 +125,14 @@ tentacle_fx_create (void)
static void static void
tentacle_free (TentacleFXData * data) tentacle_free (TentacleFXData * data)
{ {
/* TODO : un vrai FREE GRID!! */ int tmp;
/* FREE GRID */
for (tmp = 0; tmp < nbgrid; tmp++)
grid3d_free (data->grille[tmp]);
free (data->vals); free (data->vals);
goom_plugin_parameters_free (&data->params);
} }
static void static void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment