GNOME Bugzilla – Bug 792597
GL: fix leak of elements requested by signals
Last modified: 2018-02-09 06:19:26 UTC
+++ This bug was initially created as a clone of Bug #792543 +++ When the signal returns a floating reference, as its return type is transfer full, we need to sink it ourselves before passing it to gst_bin_add (which is transfer floating). This allows us to unref it in bin_remove_element later on, and thus to also release the reference we now own if the signal returns a non-floating reference as well. As we now still hold a reference to the element when removing it, we also need to lock its state and setting it to NULL before unreffing it This relates to all the "create-element" signals that various GL elements have.
commit fbef9220d3dc2f785081c4766901aab2ecfaed10 Author: Matthew Waters <matthew@centricular.com> Date: Fri Feb 9 17:15:30 2018 +1100 gl*bin: fix transfer semantics for the create-element signal We can either receive an element that is floating or not and need to accomodate that in the signal return values. Do so by removing the floating flag. https://bugzilla.gnome.org/show_bug.cgi?id=792597