diff options
author | Jan Schmidt <jan@centricular.com> | 2021-07-01 18:59:18 +0300 |
---|---|---|
committer | Jan Schmidt <jan@centricular.com> | 2021-07-01 18:59:18 +0300 |
commit | df52bdc5d42f478f92087095208614deaaf7d99b (patch) | |
tree | 69bccd42092dddd31e1c7b782c690f3ee71b176e | |
parent | ba294415d73c0f61da6f2601bc855d50e98029a5 (diff) |
parse: Fix a critical when using the : operator.
Fix "has no handler with id" output criticals when the :
multilink operator is used. These were caused by disconnecting
a signal handler multiple times.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/846>
-rw-r--r-- | gst/parse/grammar.y.in | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gst/parse/grammar.y.in b/gst/parse/grammar.y.in index d4ac581584..cf5eb16ba7 100644 --- a/gst/parse/grammar.y.in +++ b/gst/parse/grammar.y.in @@ -566,10 +566,11 @@ static void gst_parse_found_pad (GstElement *src, GstPad *pad, gpointer data) link->all_pads ? "all pads" : "one pad", PRETTY_PAD_NAME_ARGS (src, link->src_pad), PRETTY_PAD_NAME_ARGS (link->sink, link->sink_pad)); - g_signal_handler_disconnect (src, link->no_more_pads_signal_id); /* releases 'link' */ - if (!link->all_pads) + if (!link->all_pads) { + g_signal_handler_disconnect (src, link->no_more_pads_signal_id); g_signal_handler_disconnect (src, link->pad_added_signal_id); + } } } |