mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-02 17:48:06 +02:00
2007-06-12 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c (dbus_message_iter_open_container): improve the checks/warnings for contained_signature a bit
This commit is contained in:
parent
1680f1fb40
commit
15a610bc4c
3 changed files with 35 additions and 14 deletions
|
|
@ -1,5 +1,10 @@
|
|||
2007-06-12 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* dbus/dbus-message.c (dbus_message_iter_open_container): improve
|
||||
the checks/warnings for contained_signature a bit
|
||||
|
||||
2007-06-12 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* dbus/dbus-marshal-recursive.c (write_or_verify_typecode):
|
||||
improve the warning a bit if you write extra data into a message
|
||||
|
||||
|
|
|
|||
|
|
@ -1645,9 +1645,18 @@ writer_recurse_init_and_check (DBusTypeWriter *writer,
|
|||
|
||||
if (expected != sub->container_type)
|
||||
{
|
||||
_dbus_warn_check_failed ("Writing an element of type %s, but the expected type here is %s\n",
|
||||
_dbus_type_to_string (sub->container_type),
|
||||
_dbus_type_to_string (expected));
|
||||
if (expected != DBUS_TYPE_INVALID)
|
||||
_dbus_warn_check_failed ("Writing an element of type %s, but the expected type here is %s\n"
|
||||
"The overall signature expected here was '%s' and we are on byte %d of that signature.\n",
|
||||
_dbus_type_to_string (sub->container_type),
|
||||
_dbus_type_to_string (expected),
|
||||
_dbus_string_get_const_data (writer->type_str), writer->type_pos);
|
||||
else
|
||||
_dbus_warn_check_failed ("Writing an element of type %s, but no value is expected here\n",
|
||||
"The overall signature expected here was '%s' and we are on byte %d of that signature.\n",
|
||||
_dbus_type_to_string (sub->container_type),
|
||||
_dbus_string_get_const_data (writer->type_str), writer->type_pos);
|
||||
|
||||
_dbus_assert_not_reached ("bad array element or variant content written");
|
||||
}
|
||||
}
|
||||
|
|
@ -1703,11 +1712,15 @@ write_or_verify_typecode (DBusTypeWriter *writer,
|
|||
if (expected != typecode)
|
||||
{
|
||||
if (expected != DBUS_TYPE_INVALID)
|
||||
_dbus_warn_check_failed ("Array or variant type requires that type %s be written, but %s was written\n",
|
||||
_dbus_type_to_string (expected), _dbus_type_to_string (typecode));
|
||||
_dbus_warn_check_failed ("Array or variant type requires that type %s be written, but %s was written.\n"
|
||||
"The overall signature expected here was '%s' and we are on byte %d of that signature.\n",
|
||||
_dbus_type_to_string (expected), _dbus_type_to_string (typecode),
|
||||
_dbus_string_get_const_data (writer->type_str), writer->type_pos);
|
||||
else
|
||||
_dbus_warn_check_failed ("Array or variant type wasn't expecting any more values to be written into it, but a value %s was written\n",
|
||||
_dbus_type_to_string (typecode));
|
||||
_dbus_warn_check_failed ("Array or variant type wasn't expecting any more values to be written into it, but a value %s was written.\n"
|
||||
"The overall signature expected here was '%s' and we are on byte %d of that signature.\n",
|
||||
_dbus_type_to_string (typecode),
|
||||
_dbus_string_get_const_data (writer->type_str), writer->type_pos);
|
||||
_dbus_assert_not_reached ("bad type inserted somewhere inside an array or variant");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2350,16 +2350,19 @@ dbus_message_iter_open_container (DBusMessageIter *iter,
|
|||
contained_signature == NULL) ||
|
||||
(type == DBUS_TYPE_DICT_ENTRY &&
|
||||
contained_signature == NULL) ||
|
||||
contained_signature != NULL, FALSE);
|
||||
(type == DBUS_TYPE_VARIANT &&
|
||||
contained_signature != NULL) ||
|
||||
(type == DBUS_TYPE_ARRAY &&
|
||||
contained_signature != NULL), FALSE);
|
||||
|
||||
#if 0
|
||||
/* FIXME this would fail if the contained_signature is a dict entry,
|
||||
* since dict entries are invalid signatures standalone (they must be in
|
||||
/* this would fail if the contained_signature is a dict entry, since
|
||||
* dict entries are invalid signatures standalone (they must be in
|
||||
* an array)
|
||||
*/
|
||||
_dbus_return_val_if_fail (contained_signature == NULL ||
|
||||
_dbus_check_is_valid_signature (contained_signature));
|
||||
#endif
|
||||
_dbus_return_val_if_fail (type == DBUS_TYPE_DICT_ENTRY ||
|
||||
(contained_signature == NULL ||
|
||||
_dbus_check_is_valid_signature (contained_signature)),
|
||||
FALSE);
|
||||
|
||||
if (!_dbus_message_iter_open_signature (real))
|
||||
return FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue