[empathy] audio-sink: fix GstPad leaks
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] audio-sink: fix GstPad leaks
- Date: Mon, 27 Feb 2012 07:47:02 +0000 (UTC)
commit ed191caba6658b580db78a1802f2c8293e4564fb
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Fri Feb 24 14:55:04 2012 +0100
audio-sink: fix GstPad leaks
gst_ghost_pad_new() doesn't take ownership of the target pad so we have to
unref it ourself.
https://bugzilla.gnome.org/show_bug.cgi?id=670745
src/empathy-audio-sink.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/src/empathy-audio-sink.c b/src/empathy-audio-sink.c
index fbffa48..b4680a0 100644
--- a/src/empathy-audio-sink.c
+++ b/src/empathy-audio-sink.c
@@ -301,7 +301,7 @@ empathy_audio_sink_request_new_pad (GstElement *element,
EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (element);
GstElement *bin, *resample, *audioconvert0, *audioconvert1;
GstPad *pad = NULL;
- GstPad *subpad, *filterpad;
+ GstPad *subpad = NULL, *filterpad;
bin = gst_bin_new (NULL);
@@ -355,6 +355,8 @@ empathy_audio_sink_request_new_pad (GstElement *element,
goto error;
subpad = gst_ghost_pad_new ("sink", filterpad);
+ gst_object_unref (filterpad);
+
if (!gst_element_add_pad (GST_ELEMENT (bin), subpad))
goto error;
@@ -362,6 +364,7 @@ empathy_audio_sink_request_new_pad (GstElement *element,
pad = gst_ghost_pad_new (name, subpad);
g_assert (pad != NULL);
+ gst_object_unref (subpad);
if (!gst_element_sync_state_with_parent (bin))
goto error;
@@ -380,6 +383,8 @@ error:
gst_object_unref (pad);
}
+ tp_clear_pointer (&subpad, gst_object_unref);
+
gst_object_unref (bin);
g_warning ("Failed to create output subpipeline");
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]