fix a number of memleaks

Original commit message from CVS:
fix a number of memleaks
This commit is contained in:
Colin Walters 2004-05-07 20:26:47 +00:00
parent 67757ba250
commit 9ecad5ee01
3 changed files with 26 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2004-05-07 Colin Walters <walters@redhat.com>
* gst/volume/gstvolume.c (gst_volume_dispose): Unref dpman.
* ext/flac/gstflacdec.c (gst_flacdec_dispose): Add dispose
function.
* gst/audioscale/gstaudioscale.c (gst_audioscale_dispose):
Add dispose function.
2004-05-08 Jan Schmidt <thaytan@mad.scientist.com>
* ext/dv/gstdvdec.c: (gst_dvdec_video_link):
Fix caps nego and pad templates. RGB mode caps should

View file

@ -88,6 +88,7 @@ gst_audioscale_method_get_type (void)
static void gst_audioscale_base_init (gpointer g_class);
static void gst_audioscale_class_init (AudioscaleClass * klass);
static void gst_audioscale_init (Audioscale * audioscale);
static void gst_audioscale_dispose (GObject * object);
static void gst_audioscale_chain (GstPad * pad, GstData * _data);
@ -149,6 +150,7 @@ gst_audioscale_class_init (AudioscaleClass * klass)
gobject_class->set_property = gst_audioscale_set_property;
gobject_class->get_property = gst_audioscale_get_property;
gobject_class->dispose = gst_audioscale_dispose;
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FILTERLEN,
g_param_spec_int ("filter_length", "filter_length", "filter_length",
@ -383,6 +385,18 @@ gst_audioscale_init (Audioscale * audioscale)
/* we will be reinitialized when the G_PARAM_CONSTRUCTs hit */
}
static void
gst_audioscale_dispose (GObject * object)
{
Audioscale *audioscale = GST_AUDIOSCALE (object);
if (audioscale->gst_resample)
g_free (audioscale->gst_resample);
audioscale->gst_resample = NULL;
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
gst_audioscale_chain (GstPad * pad, GstData * _data)
{

View file

@ -219,6 +219,10 @@ gst_volume_dispose (GObject * object)
volume = GST_VOLUME (object);
if (volume->dpman)
g_object_unref (G_OBJECT (volume->dpman));
volume->dpman = NULL;
if (volume->tracklist) {
if (volume->tracklist->data)
g_object_unref (volume->tracklist->data);