diff options
author | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2010-08-05 19:55:00 -0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2010-08-09 18:06:49 -0400 |
commit | d5e700051b1263b2028331d41d60de02a5a6f90e (patch) | |
tree | 4af996e317c7361aee75ea3dac5d93ab0478208b /src/dbus-common.c | |
parent | c2b9e70040defcf6105e5704e4f0a6b16072193a (diff) | |
download | bluez-d5e700051b1263b2028331d41d60de02a5a6f90e.tar.gz |
Fix append_variant_array() to take a number of elements
When appending a byte array, for example, we must provide the number
of elements to the underlying functions, as the restriction that the last
element is NULL cannot be used. This updates all the callers to use the
new parameter.
Diffstat (limited to 'src/dbus-common.c')
-rw-r--r-- | src/dbus-common.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/dbus-common.c b/src/dbus-common.c index 1245b4f1b..0484450a0 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -204,7 +204,8 @@ static void append_variant(DBusMessageIter *iter, int type, void *val) dbus_message_iter_close_container(iter, &value); } -static void append_array_variant(DBusMessageIter *iter, int type, void *val) +static void append_array_variant(DBusMessageIter *iter, int type, void *val, + int n_elements) { DBusMessageIter variant, array; char type_sig[2] = { type, '\0' }; @@ -218,7 +219,7 @@ static void append_array_variant(DBusMessageIter *iter, int type, void *val) dbus_message_iter_open_container(&variant, DBUS_TYPE_ARRAY, type_sig, &array); - for (i = 0; (*str_array)[i]; i++) + for (i = 0; i < n_elements; i++) dbus_message_iter_append_basic(&array, type, &((*str_array)[i])); @@ -258,7 +259,7 @@ void dict_append_array(DBusMessageIter *dict, const char *key, int type, dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); - append_array_variant(&entry, type, val); + append_array_variant(&entry, type, val, n_elements); dbus_message_iter_close_container(dict, &entry); } @@ -293,7 +294,7 @@ dbus_bool_t emit_array_property_changed(DBusConnection *conn, const char *path, const char *interface, const char *name, - int type, void *value) + int type, void *value, int num) { DBusMessage *signal; DBusMessageIter iter; @@ -310,7 +311,7 @@ dbus_bool_t emit_array_property_changed(DBusConnection *conn, dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &name); - append_array_variant(&iter, type, value); + append_array_variant(&iter, type, value, num); return g_dbus_send_message(conn, signal); } |