From 0c6f2bbff503c10212589c1540d06b29395587aa Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 27 Jun 2005 18:20:20 +0000 Subject: 2005-06-27 Colin Walters * test/glib/test-dbus-glib.c: * test/glib/test-service-glib.c: * test/glib/test-service-glib.xml: Test hash table signal emitting. * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert types to their fundamental basis types, since this is what marshallers operate on. Also add an entry for VOID__BOXED. (dbus_g_object_register_marshaller_array): Convert to fundamental. --- test/glib/test-service-glib.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test/glib/test-service-glib.c') diff --git a/test/glib/test-service-glib.c b/test/glib/test-service-glib.c index 21c4458d..46421d70 100644 --- a/test/glib/test-service-glib.c +++ b/test/glib/test-service-glib.c @@ -79,6 +79,7 @@ gboolean my_object_get_val (MyObject *obj, guint *ret, GError **error); gboolean my_object_get_value (MyObject *obj, guint *ret, GError **error); gboolean my_object_emit_signals (MyObject *obj, GError **error); +gboolean my_object_emit_signal2 (MyObject *obj, GError **error); gboolean my_object_emit_frobnicate (MyObject *obj, GError **error); @@ -98,6 +99,7 @@ enum FROBNICATE, SIG0, SIG1, + SIG2, LAST_SIGNAL }; @@ -206,6 +208,15 @@ my_object_class_init (MyObjectClass *mobject_class) NULL, NULL, my_object_marshal_VOID__STRING_BOXED, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VALUE); + + signals[SIG2] = + g_signal_new ("sig2", + G_OBJECT_CLASS_TYPE (mobject_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, DBUS_TYPE_G_STRING_STRING_HASHTABLE); } GQuark @@ -438,6 +449,19 @@ my_object_emit_signals (MyObject *obj, GError **error) return TRUE; } +gboolean +my_object_emit_signal2 (MyObject *obj, GError **error) +{ + GHashTable *table; + + table = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_insert (table, "baz", "cow"); + g_hash_table_insert (table, "bar", "foo"); + g_signal_emit (obj, signals[SIG2], 0, table); + g_hash_table_destroy (table); + return TRUE; +} + static GMainLoop *loop; #define TEST_SERVICE_NAME "org.freedesktop.DBus.TestSuiteGLibService" -- cgit