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

ChangeLog
ext/flac/gstflacdec.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 af5e8b9..e8881f1 100644 (file)
@@ -56,6 +56,7 @@ enum
 static void gst_flacdec_base_init (gpointer g_class);
 static void gst_flacdec_class_init (FlacDecClass * klass);
 static void gst_flacdec_init (FlacDec * flacdec);
+static void gst_flacdec_dispose (GObject * object);
 
 static void gst_flacdec_loop (GstElement * element);
 static GstElementStateReturn gst_flacdec_change_state (GstElement * element);
@@ -168,6 +169,8 @@ gst_flacdec_class_init (FlacDecClass * klass)
 
   parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
 
+  gobject_class->dispose = gst_flacdec_dispose;
+  
   gstelement_class->change_state = gst_flacdec_change_state;
 }
 
@@ -227,6 +230,21 @@ gst_flacdec_init (FlacDec * flacdec)
   FLAC__seekable_stream_decoder_set_client_data (flacdec->decoder, flacdec);
 }
 
+static void
+gst_flacdec_dispose (GObject * object)
+{
+  FlacDec *flacdec;
+
+  flacdec = GST_FLACDEC (object);
+
+  if (flacdec->decoder)
+    FLAC__seekable_stream_decoder_delete (flacdec->decoder);
+  flacdec->decoder = NULL;
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+
 static gboolean
 gst_flacdec_update_metadata (FlacDec * flacdec,
     const FLAC__StreamMetadata * metadata)