summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2019-06-09 12:16:28 -0400
committerTim-Philipp Müller <tim@centricular.com>2020-02-19 14:29:33 +0000
commit1fc0d290133ce56d80b807fce82e8e5c530e1535 (patch)
tree7cecaf31a297a080815871661b0fd417fdc28b5a
parentbf3c8d453b6c37d34c2083ef2c79cd7a064cd939 (diff)
Fix gst_promise_new_with_change_func
For some reason bindinator doesn't properly detect that the `func` passed in gst_promise_new_with_change_func is a closure and what the destroy function is (because it is a constructor?) Mark it manually. From suggestion from Alex Dircksen: https://gitlab.freedesktop.org/gstreamer/gstreamer-sharp/issues/9#note_166633 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-sharp/issues/9
-rw-r--r--sources/generated/Gst/Promise.cs11
-rw-r--r--sources/generated/gstreamer-sharp-api.xml2
-rw-r--r--sources/gstreamer-sharp.metadata4
3 files changed, 15 insertions, 2 deletions
diff --git a/sources/generated/Gst/Promise.cs b/sources/generated/Gst/Promise.cs
index 10ffd34..b3d7397 100644
--- a/sources/generated/Gst/Promise.cs
+++ b/sources/generated/Gst/Promise.cs
@@ -75,9 +75,18 @@ namespace Gst {
[DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr gst_promise_new_with_change_func(GstSharp.PromiseChangeFuncNative func, IntPtr user_data, GLib.DestroyNotify notify);
- public Promise (Gst.PromiseChangeFunc func, IntPtr user_data, GLib.DestroyNotify notify)
+ public Promise (Gst.PromiseChangeFunc func)
{
GstSharp.PromiseChangeFuncWrapper func_wrapper = new GstSharp.PromiseChangeFuncWrapper (func);
+ IntPtr user_data;
+ GLib.DestroyNotify notify;
+ if (func == null) {
+ user_data = IntPtr.Zero;
+ notify = null;
+ } else {
+ user_data = (IntPtr) GCHandle.Alloc (func_wrapper);
+ notify = GLib.DestroyHelper.NotifyHandler;
+ }
Raw = gst_promise_new_with_change_func(func_wrapper.NativeDelegate, user_data, notify);
}
diff --git a/sources/generated/gstreamer-sharp-api.xml b/sources/generated/gstreamer-sharp-api.xml
index 931b7e7..802b4cc 100644
--- a/sources/generated/gstreamer-sharp-api.xml
+++ b/sources/generated/gstreamer-sharp-api.xml
@@ -9060,7 +9060,7 @@
<constructor cname="gst_promise_new" disable_void_ctor="" version="1.14" />
<constructor cname="gst_promise_new_with_change_func" version="1.14">
<parameters>
- <parameter name="func" type="GstPromiseChangeFunc" />
+ <parameter name="func" type="GstPromiseChangeFunc" scope="notified" closure="1" destroy="2" />
<parameter name="user_data" type="gpointer" />
<parameter name="notify" type="GDestroyNotify" />
</parameters>
diff --git a/sources/gstreamer-sharp.metadata b/sources/gstreamer-sharp.metadata
index 96076b1..f33f747 100644
--- a/sources/gstreamer-sharp.metadata
+++ b/sources/gstreamer-sharp.metadata
@@ -39,6 +39,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
<!-- GstPromise fixes -->
<attr path="/api/namespace/boxed[@cname='GstPromise']/method[@cname='gst_promise_get_reply']" name="name">RetrieveReply</attr>
+ <attr path="/api/namespace/boxed[@cname='GstPromise']/constructor[@cname='gst_promise_new_with_change_func']/*/*[@name='func']" name="scope">notified</attr>
+ <attr path="/api/namespace/boxed[@cname='GstPromise']/constructor[@cname='gst_promise_new_with_change_func']/*/*[@name='func']" name="closure">1</attr>
+ <attr path="/api/namespace/boxed[@cname='GstPromise']/constructor[@cname='gst_promise_new_with_change_func']/*/*[@name='func']" name="destroy">2</attr>
+
<!-- GstRTSPMessage fixes -->
<attr path="/api/namespace/boxed[@cname='GstRTSPMessage']/method[@cname='gst_rtsp_message_get_body']" name="hidden">true</attr>