diff options
author | Mike Gorse <mgorse@suse.com> | 2014-01-24 05:14:48 -0600 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2014-01-27 17:17:28 -0600 |
commit | 38e4e0d4f3fd8a9aa8f024f6d6283e619df74fe9 (patch) | |
tree | 6bf95b92f6b7b3a3b082f8dbd384c3ec3712589d /tests | |
parent | 9776c2abbcc51cc76a10d38469654e0c15327b5a (diff) | |
download | gobject-introspection-38e4e0d4f3fd8a9aa8f024f6d6283e619df74fe9.tar.gz |
Add test passing an owned boxed structure to a callback
https://bugzilla.gnome.org/show_bug.cgi?id=722899
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gimarshallingtests.c | 20 | ||||
-rw-r--r-- | tests/gimarshallingtests.h | 10 |
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/gimarshallingtests.c b/tests/gimarshallingtests.c index 09333391..bd3fe811 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 e57f92ed..5568a6f9 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); |