[gobject-introspection] Add test passing an owned boxed structure to a callback



commit 38e4e0d4f3fd8a9aa8f024f6d6283e619df74fe9
Author: Mike Gorse <mgorse suse com>
Date:   Fri Jan 24 05:14:48 2014 -0600

    Add test passing an owned boxed structure to a callback
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722899

 tests/gimarshallingtests.c |   20 ++++++++++++++++++++
 tests/gimarshallingtests.h |   10 ++++++++++
 2 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/tests/gimarshallingtests.c b/tests/gimarshallingtests.c
index 0933339..bd3fe81 100644
--- a/tests/gimarshallingtests.c
+++ b/tests/gimarshallingtests.c
@@ -4363,6 +4363,26 @@ glong
   return return_value;
 }
 
+/**
+ * gi_marshalling_tests_callback_owned_boxed:
+ * @callback: (scope call) (closure callback_data):
+ * @callback_data: (allow-none):
+ */
+glong
+gi_marshalling_tests_callback_owned_boxed (GIMarshallingTestsCallbackOwnedBoxed callback,
+                                           void *callback_data)
+{
+  static GIMarshallingTestsBoxedStruct *box = NULL;
+  glong ret;
+
+  if (!box)
+    box = gi_marshalling_tests_boxed_struct_new ();
+  box->long_++;
+  callback (box, callback_data);
+  ret = box->long_;
+  return ret;
+}
+
 gboolean
 gi_marshalling_tests_object_vfunc_meth_with_error (GIMarshallingTestsObject *self, gint x, GError **error)
 {
diff --git a/tests/gimarshallingtests.h b/tests/gimarshallingtests.h
index e57f92e..5568a6f 100644
--- a/tests/gimarshallingtests.h
+++ b/tests/gimarshallingtests.h
@@ -618,6 +618,16 @@ glong gi_marshalling_tests_callback_return_value_and_multiple_out_parameters (GI
                                                                               glong                          
                               *a,
                                                                               glong                          
                               *b);
 
+/**
+ * GIMarshallingTestsCallbackOwnedBoxed
+* @box: (transfer none): the boxed structure.
+ */
+typedef void (* GIMarshallingTestsCallbackOwnedBoxed) (GIMarshallingTestsBoxedStruct *box,
+                                                      void                      *user_data);
+
+glong gi_marshalling_tests_callback_owned_boxed (GIMarshallingTestsCallbackOwnedBoxed  callback,
+                                                 void *callback_data);
+
 /* Pointer */
 
 gpointer gi_marshalling_tests_pointer_in_return (gpointer pointer);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]