summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/equalizer/gstiirequalizer.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d901318c..a02f0129 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2008-01-18 Sebastian Dröge <slomo@circular-chaos.org>
+ * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_finalize):
+ Unparent all bands from the equalizer when finalizing to stop
+ leaking them.
+
+2008-01-18 Sebastian Dröge <slomo@circular-chaos.org>
+
* ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_uri_get_protocols):
Add support for WebDAV.
diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c
index 54e8abc5..684e8843 100644
--- a/gst/equalizer/gstiirequalizer.c
+++ b/gst/equalizer/gstiirequalizer.c
@@ -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);