diff options
author | Johan Bilien <jobi@litl.com> | 2009-02-24 15:19:07 +0000 |
---|---|---|
committer | Johan Bilien <jobi@litl.com> | 2009-02-24 15:22:59 +0000 |
commit | 7bd4bc6807dc829f6e8ea4db1b58a85e365b8b97 (patch) | |
tree | 375d55911dfa24000a86f5ff8855deb33ce7bef4 /tests | |
parent | 15610cae80648a870d6838c86f96fe727c3009c8 (diff) | |
download | gobject-introspection-7bd4bc6807dc829f6e8ea4db1b58a85e365b8b97.tar.gz |
Bug 572965 – Allow generic marshaller to be called without parameters
girepository/ginvoke.c: handle the case where n_param_values == 0.
tests/invoke/genericmarshaller.c: add a test case for this.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/invoke/genericmarshaller.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/invoke/genericmarshaller.c b/tests/invoke/genericmarshaller.c index dd2509c3..d0233990 100644 --- a/tests/invoke/genericmarshaller.c +++ b/tests/invoke/genericmarshaller.c @@ -150,12 +150,20 @@ test4_callback (TestObject *object, g_return_if_fail (ulong == 30L); } +/* this callback has no "this" */ +static void +test5_callback (gpointer user_data) +{ + g_return_if_fail (!strcmp (user_data, "user-data")); +} + static void test_cclosure_marshal (void) { TestObject *object; gchar *data = "user-data"; int i; + GClosure *closure; g_type_init (); @@ -189,7 +197,17 @@ test_cclosure_marshal (void) g_assert (i == 20); g_object_unref (object); + + closure = g_cclosure_new (G_CALLBACK (test5_callback), + data, + NULL); + g_closure_ref (closure); + g_closure_sink (closure); + g_closure_set_marshal (closure, gi_cclosure_marshal_generic); + g_closure_invoke (closure, NULL, 0, NULL, NULL); + g_closure_unref (closure); } + int main(void) { |