From 3edb63d2ed8c39d94a299225eb67ef1df73607bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 29 May 2008 07:19:47 +0000 Subject: [PATCH] gst/gstelement.*: Deprecated gst_element_get_pad() as it can't be used sanely. It's not clear of the reference to the... Original commit message from CVS: * gst/gstelement.c: * gst/gstelement.h: Deprecated gst_element_get_pad() as it can't be used sanely. It's not clear of the reference to the resulting pad must be released later or not, resulting in possible leaks. Fixes bug #533865. --- ChangeLog | 8 ++++++++ gst/gstelement.c | 7 +++++-- gst/gstelement.h | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7295a65859..28b043ba83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-29 Sebastian Dröge + + * gst/gstelement.c: + * gst/gstelement.h: + Deprecated gst_element_get_pad() as it can't be used sanely. It's not + clear of the reference to the resulting pad must be released later + or not, resulting in possible leaks. Fixes bug #533865. + 2008-05-28 Wim Taymans Patch by: José Alburquerque diff --git a/gst/gstelement.c b/gst/gstelement.c index 6b932c3bdf..446f4e0e86 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -1003,13 +1003,15 @@ gst_element_get_request_pad (GstElement * element, const gchar * name) * Retrieves a pad from @element by name. Tries gst_element_get_static_pad() * first, then gst_element_get_request_pad(). * - * Usage of this function is not recommended as it is unclear if the reference + * Deprecated: This function is deprecated as it's unclear if the reference * to the result pad should be released with gst_object_unref() in case of a static pad - * or gst_element_release_request_pad() in case of a request pad. + * or gst_element_release_request_pad() in case of a request pad. + * Use gst_element_get_static_pad() or gst_element_get_request_pad() instead. * * Returns: the #GstPad if found, otherwise %NULL. Unref or Release after usage, * depending on the type of the pad. */ +#ifndef GST_REMOVE_DEPRECATED GstPad * gst_element_get_pad (GstElement * element, const gchar * name) { @@ -1024,6 +1026,7 @@ gst_element_get_pad (GstElement * element, const gchar * name) return pad; } +#endif /* GST_REMOVE_DEPRECATED */ static GstIteratorItem iterate_pad (GstIterator * it, GstPad * pad) diff --git a/gst/gstelement.h b/gst/gstelement.h index 0827c7d784..1ed8355e96 100644 --- a/gst/gstelement.h +++ b/gst/gstelement.h @@ -601,7 +601,9 @@ gboolean gst_element_add_pad (GstElement *element, GstPad *pad); gboolean gst_element_remove_pad (GstElement *element, GstPad *pad); void gst_element_no_more_pads (GstElement *element); +#ifndef GST_DISABLE_DEPRECATED GstPad* gst_element_get_pad (GstElement *element, const gchar *name); +#endif /* GST_DISABLE_DEPRECATED */ GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name); GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name); void gst_element_release_request_pad (GstElement *element, GstPad *pad);