From: Jens Georg Date: Fri, 16 Dec 2011 12:33:29 +0000 (+0100) Subject: gstreamer-0.10: Fix several ownership transfer when adding children X-Git-Tag: 0.14.2~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd66e7a9cce393187d0232524053b5b11d02a117;p=thirdparty%2Fvala.git gstreamer-0.10: Fix several ownership transfer when adding children gst_bin_add, gst_bin_add_many and gst_element_add_pad only transfer ownership if the reference is floating, otherwise increasing the refcount. The reference is added by gst_object_set_parent. Fixes bug 666358. --- diff --git a/vapi/gstreamer-0.10.vapi b/vapi/gstreamer-0.10.vapi index e083a9f41..554aa5ac1 100644 --- a/vapi/gstreamer-0.10.vapi +++ b/vapi/gstreamer-0.10.vapi @@ -43,10 +43,10 @@ namespace Gst { public bool state_dirty; [CCode (has_construct_function = false, type = "GstElement*")] public Bin (string? name); - public bool add (owned Gst.Element element); + public bool add (Gst.Element element); [NoWrapper] public virtual bool add_element (Gst.Element element); - public void add_many (params owned Gst.Element[] elements); + public void add_many (params Gst.Element[] elements); public Gst.Pad? find_unconnected_pad (Gst.PadDirection direction); public Gst.Pad? find_unlinked_pad (Gst.PadDirection direction); public Gst.Element? get_by_interface (GLib.Type iface); @@ -411,7 +411,7 @@ namespace Gst { [CCode (has_construct_function = false)] protected Element (); public void abort_state (); - public bool add_pad (owned Gst.Pad pad); + public bool add_pad (Gst.Pad pad); [CCode (cname = "gst_element_class_add_pad_template")] public class void add_pad_template (Gst.PadTemplate templ); public virtual Gst.StateChangeReturn change_state (Gst.StateChange transition); diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala b/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala index dc85a0536..f99d1e4a2 100644 --- a/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala +++ b/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala @@ -148,7 +148,7 @@ namespace Gst { } public class Bin { - public void add_many (params owned Gst.Element[] elements); + public void add_many (params Gst.Element[] elements); public void remove_many (params Gst.Element[] elements); } diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata b/vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata index 264fd3eb3..81015a02f 100644 --- a/vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata +++ b/vapi/packages/gstreamer-0.10/gstreamer-0.10.metadata @@ -5,7 +5,6 @@ GstBin.priv hidden="1" GstBin.children type_arguments="Element" GstBin.messages type_arguments="Message" gst_bin_new.name nullable="1" -gst_bin_add.element value_owned="1" gst_bin_remove.element gst_bin_add_many hidden="1" gst_bin_remove_many hidden="1" @@ -122,7 +121,6 @@ GstElement.sinkpads type_arguments="Pad" GstElement.srcpads type_arguments="Pad" GstElement.abidata hidden="1" GstElementClass hidden="1" -gst_element_add_pad.pad takes_ownership="1" gst_element_link_many ellipsis="1" gst_element_unlink_many ellipsis="1" gst_element_found_tags.list takes_ownership="1"