core: make use of dbus_message_iter_append_fixed_array

dbus_message_iter_append_fixed_array does appends a block of fixed-length
values to an array.
This commit is contained in:
Luiz Augusto von Dentz 2010-10-20 14:04:38 +03:00
parent e8a7d1932f
commit f564c7d763

View file

@ -595,19 +595,14 @@ void pa_dbus_send_proplist_variant_reply(DBusConnection *c, DBusMessage *in_repl
void pa_dbus_append_basic_array(DBusMessageIter *iter, int item_type, const void *array, unsigned n) {
DBusMessageIter array_iter;
unsigned i;
unsigned item_size;
pa_assert(iter);
pa_assert(dbus_type_is_basic(item_type));
pa_assert(array || n == 0);
item_size = basic_type_size(item_type);
pa_assert_se(dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY, signature_from_basic_type(item_type), &array_iter));
for (i = 0; i < n; ++i)
pa_assert_se(dbus_message_iter_append_basic(&array_iter, item_type, &((uint8_t*) array)[i * item_size]));
pa_assert_se(dbus_message_iter_append_fixed_array(&array_iter, item_type, array, n));
pa_assert_se(dbus_message_iter_close_container(iter, &array_iter));
};