fix a number of memleaks
authorColin Walters <walters@verbum.org>
Fri, 7 May 2004 20:26:47 +0000 (20:26 +0000)
committerColin Walters <walters@verbum.org>
Fri, 7 May 2004 20:26:47 +0000 (20:26 +0000)
Original commit message from CVS:
fix a number of memleaks

ChangeLog
gst/audioscale/gstaudioscale.c
gst/volume/gstvolume.c

index 8b7fd9e..f12e90d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 49a3742..ee2fa3f 100644 (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",
@@ -384,6 +386,18 @@ gst_audioscale_init (Audioscale * audioscale)
 }
 
 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)
 {
   GstBuffer *buf = GST_BUFFER (_data);
index 83c230b..e177ab8 100644 (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);