gst/equalizer/gstiirequalizer.c: Unparent all bands from the equalizer when finalizin...
authorSebastian Dröge <slomo@circular-chaos.org>
Fri, 18 Jan 2008 07:03:23 +0000 (07:03 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Fri, 18 Jan 2008 07:03:23 +0000 (07:03 +0000)
Original commit message from CVS:
* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_finalize):
Unparent all bands from the equalizer when finalizing to stop
leaking them.

gst/equalizer/gstiirequalizer.c

index 54e8abc..684e884 100644 (file)
@@ -340,6 +340,14 @@ static void
 gst_iir_equalizer_finalize (GObject * object)
 {
   GstIirEqualizer *equ = GST_IIR_EQUALIZER (object);
+  gint i;
+
+  for (i = 0; i < equ->freq_band_count; i++) {
+    if (equ->bands[i])
+      gst_object_unparent (GST_OBJECT (equ->bands[i]));
+    equ->bands[i] = NULL;
+  }
+  equ->freq_band_count = 0;
 
   g_free (equ->bands);
   g_free (equ->history);