pad: fix sticky event leak after sticky_events_foreach

events_foreach adds an extra ref when giving the event to the
user function. In case it was unrefed by the user, this extra ref
disappeared, but events_foreach still should unref again to
lose its own ref before removing the event from the array.

https://bugzilla.gnome.org/show_bug.cgi?id=722467
This commit is contained in:
Thiago Santos 2014-01-17 22:53:01 -03:00
parent 0264bbdb46
commit 75fe1004a5

View file

@ -547,6 +547,7 @@ restart:
if (G_UNLIKELY (ev->event != ev_ret.event)) { if (G_UNLIKELY (ev->event != ev_ret.event)) {
if (G_UNLIKELY (ev_ret.event == NULL)) { if (G_UNLIKELY (ev_ret.event == NULL)) {
/* function unreffed and set the event to NULL, remove it */ /* function unreffed and set the event to NULL, remove it */
gst_event_unref (ev->event);
g_array_remove_index (events, i); g_array_remove_index (events, i);
len--; len--;
cookie = ++pad->priv->events_cookie; cookie = ++pad->priv->events_cookie;