Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/invoke/genericmarshaller.c
diff options
context:
space:
mode:
authorJohan Bilien <jobi@litl.com>2009-02-24 15:19:07 (GMT)
committer Johan Bilien <jobi@litl.com>2009-02-24 15:22:59 (GMT)
commit7bd4bc6807dc829f6e8ea4db1b58a85e365b8b97 (patch)
tree375d55911dfa24000a86f5ff8855deb33ce7bef4 /tests/invoke/genericmarshaller.c
parent15610cae80648a870d6838c86f96fe727c3009c8 (diff)
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/invoke/genericmarshaller.c')
-rw-r--r--tests/invoke/genericmarshaller.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/invoke/genericmarshaller.c b/tests/invoke/genericmarshaller.c
index dd2509c..d023399 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)
{