According to dbus documentation, dbus_message_iter_append_basic()
expects a "const char**" if type is string and a simple pointer for
other types. Since we a iterating an array, the value passed is already
a pointer.
---
src/dbus.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/dbus.c b/src/dbus.c
index c24615f..292f11a 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -139,8 +139,13 @@ static void append_dict_variant(DBusMessageIter *iter, int type, void
*val)
dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING,
&(val_array[i + 0]));
- dbus_message_iter_append_basic(&entry, type,
- &(val_array[i + 1]));
+ if (type == DBUS_TYPE_STRING) {
+ dbus_message_iter_append_basic(&entry, type,
+ &(val_array[i + 1]));
+ } else {
+ dbus_message_iter_append_basic(&entry, type,
+ val_array[i + 1]);
+ }
dbus_message_iter_close_container(&array, &entry);
}
--
1.7.3.4