summaryrefslogtreecommitdiff
path: root/src/dbus-common.c
diff options
context:
space:
mode:
authorVinicius Costa Gomes <vinicius.gomes@openbossa.org>2010-08-05 19:55:00 -0300
committerJohan Hedberg <johan.hedberg@nokia.com>2010-08-09 18:06:49 -0400
commitd5e700051b1263b2028331d41d60de02a5a6f90e (patch)
tree4af996e317c7361aee75ea3dac5d93ab0478208b /src/dbus-common.c
parentc2b9e70040defcf6105e5704e4f0a6b16072193a (diff)
downloadbluez-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.c11
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);
}