[Galago-commits] r2337 - in trunk/libgalago: . libgalago

galago-commits at freedesktop.org galago-commits at freedesktop.org
Sun Nov 20 03:19:12 PST 2005


Author: chipx86
Date: 2005-11-20 03:19:10 -0800 (Sun, 20 Nov 2005)
New Revision: 2337

Modified:
   trunk/libgalago/ChangeLog
   trunk/libgalago/libgalago/galago-dbus.c
Log:
galago_dbus_message_iter_append_object_list() now passes all objects in an actual D-BUS array, and galago_dbus_message_iter_get_object_list() now expects an array.


Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog	2005-11-20 11:15:22 UTC (rev 2336)
+++ trunk/libgalago/ChangeLog	2005-11-20 11:19:10 UTC (rev 2337)
@@ -1,3 +1,10 @@
+Sun Nov 20 03:17:35 PST 2005  Christian Hammond <chipx86 at chipx86.com>
+
+	* libgalago/galago-dbus.c:
+	  - galago_dbus_message_iter_append_object_list() now passes all objects
+	    in an actual D-BUS array, and
+	    galago_dbus_message_iter_get_object_list() now expects an array.
+
 Sun Nov 20 03:14:49 PST 2005  Christian Hammond <chipx86 at chipx86.com>
 
 	* libgalago/galago-dbus.c:

Modified: trunk/libgalago/libgalago/galago-dbus.c
===================================================================
--- trunk/libgalago/libgalago/galago-dbus.c	2005-11-20 11:15:22 UTC (rev 2336)
+++ trunk/libgalago/libgalago/galago-dbus.c	2005-11-20 11:19:10 UTC (rev 2337)
@@ -85,43 +85,27 @@
 galago_dbus_message_iter_append_object_list(DBusMessageIter *iter, GType type,
 											GList *list)
 {
-	GList *l;
-	guint num_objects;
-	DBusMessageIter *append_iter;
-#if 0
+	const char *dbus_signature;
 	DBusMessageIter array_iter;
-#endif
+	GList *l;
 
 	g_return_if_fail(iter != NULL);
 
-	num_objects = g_list_length(list);
+	dbus_signature = galago_object_type_get_dbus_signature(type);
 
-#if 0
+	g_return_if_fail(dbus_signature != NULL);
+
 	dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
-									 DBUS_STRUCT_BEGIN_CHAR_AS_STRING
-									 DBUS_STRUCT_END_CHAR_AS_STRING,
-									 &array_iter);
-	append_iter = &array_iter;
-#else
-	dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &num_objects);
-	append_iter = iter;
-#endif
+									 dbus_signature, &array_iter);
 
-	/*
-	 * NOTE: There's a possible problem of objects in a list being
-	 *       of different classes. If this is the case, oops, screwed.
-	 *       Up to the developer to fix.
-	 */
 	for (l = list; l != NULL; l = l->next)
 	{
 		GalagoObject *object = (GalagoObject *)l->data;
 
-		galago_dbus_message_iter_append_object(append_iter, object);
+		galago_dbus_message_iter_append_object(&array_iter, object);
 	}
 
-#if 0
 	dbus_message_iter_close_container(iter, &array_iter);
-#endif
 }
 
 void *
@@ -162,33 +146,15 @@
 
 	g_return_val_if_fail(iter  != NULL, NULL);
 
-	if (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_ARRAY)
-	{
-		DBusMessageIter array_iter;
-		dbus_message_iter_recurse(iter, &array_iter);
+	DBusMessageIter array_iter;
+	dbus_message_iter_recurse(iter, &array_iter);
 
-		while (dbus_message_iter_get_arg_type(&array_iter) != DBUS_TYPE_INVALID)
-		{
-			list = g_list_append(list,
-				galago_dbus_message_iter_get_object(&array_iter, type));
-
-			dbus_message_iter_next(&array_iter);
-		}
-	}
-	else
+	while (dbus_message_iter_get_arg_type(&array_iter) != DBUS_TYPE_INVALID)
 	{
-		/* XXX Nuke this when everything moves to a common array format */
-		dbus_uint32_t num_objects, i;
+		list = g_list_append(list,
+			galago_dbus_message_iter_get_object(&array_iter, type));
 
-		dbus_message_iter_get_basic(iter, &num_objects);
-
-		for (i = 0; i < num_objects; i++)
-		{
-			dbus_message_iter_next(iter);
-
-			list = g_list_append(list,
-				galago_dbus_message_iter_get_object(iter, type));
-		}
+		dbus_message_iter_next(&array_iter);
 	}
 
 	return list;



More information about the galago-commits mailing list