mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-04 17:52:29 +00:00
pad: Fix iterator aggregation of all pads in the internal links fallback
g_list_prepend() returns the new head of the list and not using this will create a memory leak and a single-element list.
This commit is contained in:
parent
18f23bc0b0
commit
6ff314c75a
1 changed files with 3 additions and 3 deletions
|
@ -3266,9 +3266,9 @@ gst_pad_iterate_internal_links (GstPad * pad)
|
||||||
|
|
||||||
#ifndef GST_REMOVE_DEPRECATED
|
#ifndef GST_REMOVE_DEPRECATED
|
||||||
static void
|
static void
|
||||||
add_unref_pad_to_list (GstPad * pad, GList * list)
|
add_unref_pad_to_list (GstPad * pad, GList ** list)
|
||||||
{
|
{
|
||||||
list = g_list_prepend (list, pad);
|
*list = g_list_prepend (*list, pad);
|
||||||
gst_object_unref (pad);
|
gst_object_unref (pad);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -3318,7 +3318,7 @@ gst_pad_get_internal_links_default (GstPad * pad)
|
||||||
/* loop over the iterator and put all elements into a list, we also
|
/* loop over the iterator and put all elements into a list, we also
|
||||||
* immediatly unref them, which is bad. */
|
* immediatly unref them, which is bad. */
|
||||||
do {
|
do {
|
||||||
ires = gst_iterator_foreach (it, (GFunc) add_unref_pad_to_list, res);
|
ires = gst_iterator_foreach (it, (GFunc) add_unref_pad_to_list, &res);
|
||||||
switch (ires) {
|
switch (ires) {
|
||||||
case GST_ITERATOR_OK:
|
case GST_ITERATOR_OK:
|
||||||
case GST_ITERATOR_DONE:
|
case GST_ITERATOR_DONE:
|
||||||
|
|
Loading…
Reference in a new issue