From 09daa28c5b4625b6f274b3b340bc85e33bef80b5 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 2 Jun 2015 19:24:49 +0200 Subject: tests: Add regression test for (transfer full) returning callbacks https://bugzilla.gnome.org/show_bug.cgi?id=750286 --- tests/scanner/regress.c | 14 ++++++++++++++ tests/scanner/regress.h | 8 ++++++++ 2 files changed, 22 insertions(+) (limited to 'tests') diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c index 8a0652fc..7669186b 100644 --- a/tests/scanner/regress.c +++ b/tests/scanner/regress.c @@ -3438,6 +3438,20 @@ regress_test_callback_user_data (RegressTestCallbackUserData callback, return callback(user_data); } +/** + * regress_test_callback_return_full: + * @callback: (scope call): + * + **/ +void +regress_test_callback_return_full (RegressTestCallbackReturnFull callback) +{ + RegressTestObj *obj; + + obj = callback (); + g_object_unref (obj); +} + static GSList *notified_callbacks = NULL; /** diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index 9bef3c86..51740736 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -1041,6 +1041,11 @@ typedef void (*RegressTestCallbackOwnedGError) (GError *error); * @path: (type filename): Path to file */ typedef int (*RegressTestCallbackFull) (int foo, double bar, char *path); +/** + * RegressTestCallbackReturnFull: + * Return value: (transfer full): + */ +typedef RegressTestObj *(*RegressTestCallbackReturnFull) (void); /** * RegressTestCallbackArray: * @one: (array length=one_length): @@ -1075,6 +1080,9 @@ _GI_TEST_EXTERN int regress_test_callback_user_data (RegressTestCallbackUserData callback, gpointer user_data); +_GI_TEST_EXTERN +void regress_test_callback_return_full (RegressTestCallbackReturnFull callback); + _GI_TEST_EXTERN int regress_test_callback_destroy_notify (RegressTestCallbackUserData callback, gpointer user_data, -- cgit v1.2.1