summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-marshal.c
diff options
context:
space:
mode:
Diffstat (limited to 'dbus/dbus-marshal.c')
-rw-r--r--dbus/dbus-marshal.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/dbus/dbus-marshal.c b/dbus/dbus-marshal.c
index 148ce08e..9b9e9e62 100644
--- a/dbus/dbus-marshal.c
+++ b/dbus/dbus-marshal.c
@@ -718,9 +718,9 @@ _dbus_demarshal_string_array (DBusString *str,
{
int len, i, j;
char **retval;
-
+
len = _dbus_demarshal_uint32 (str, byte_order, pos, &pos);
-
+
retval = dbus_new (char *, len);
if (!retval)
@@ -734,6 +734,12 @@ _dbus_demarshal_string_array (DBusString *str,
goto error;
}
+ if (new_pos)
+ *new_pos = pos;
+
+ if (array_len)
+ *array_len = len;
+
return retval;
error:
@@ -1033,7 +1039,6 @@ _dbus_marshal_test (void)
/* Marshal signed integer arrays */
if (!_dbus_marshal_int32_array (&str, DBUS_BIG_ENDIAN, array1, 3))
_dbus_assert_not_reached ("could not marshal integer array");
- _dbus_verbose_bytes_of_string (&str, 0, _dbus_string_get_length (&str));
array2 = _dbus_demarshal_int32_array (&str, DBUS_BIG_ENDIAN, pos, &pos, &len);
printf ("length is: %d\n", len);
if (len != 3)