From: John (J5) Palmieri Date: Thu, 10 Feb 2005 04:36:23 +0000 (+0000) Subject: * dbus/dbus-message.c (dbus_message_iter_open_container): X-Git-Tag: dbus-0.23.1~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8fda602e991990d21f196e65d917a481c6ec1360;p=thirdparty%2Fdbus.git * dbus/dbus-message.c (dbus_message_iter_open_container): - Removed check for iterator type being an array because get_arg_type does not work with writer iterators - Pass NULL to _dbus_type_writer_recurse if signiture is NULL --- diff --git a/ChangeLog b/ChangeLog index 68a8b7ab6..250931570 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-02-09 John (J5) Palmieri + + * dbus/dbus-message.c (dbus_message_iter_open_container): + - Removed check for iterator type being an array because + get_arg_type does not work with writer iterators + - Pass NULL to _dbus_type_writer_recurse if signiture is NULL + 2005-02-07 Havoc Pennington * doc/dbus-specification.xml: some more language cleanups; add diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index a28525580..537f857ba 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -2160,9 +2160,6 @@ dbus_message_iter_open_container (DBusMessageIter *iter, (type == DBUS_TYPE_DICT_ENTRY && contained_signature == NULL) || contained_signature != NULL, FALSE); - _dbus_return_val_if_fail (type != DBUS_TYPE_DICT_ENTRY || - dbus_message_iter_get_arg_type (iter) == DBUS_TYPE_ARRAY, - FALSE); #if 0 /* FIXME this would fail if the contained_signature is a dict entry, @@ -2176,13 +2173,24 @@ dbus_message_iter_open_container (DBusMessageIter *iter, if (!_dbus_message_iter_open_signature (real)) return FALSE; - _dbus_string_init_const (&contained_str, contained_signature); - *real_sub = *real; - return _dbus_type_writer_recurse (&real->u.writer, - type, - &contained_str, 0, - &real_sub->u.writer); + + if (contained_signature != NULL) + { + _dbus_string_init_const (&contained_str, contained_signature); + + return _dbus_type_writer_recurse (&real->u.writer, + type, + &contained_str, 0, + &real_sub->u.writer); + } + else + { + return _dbus_type_writer_recurse (&real->u.writer, + type, + NULL, 0, + &real_sub->u.writer); + } }