[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