diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-06-10 10:10:54 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-07-11 17:54:36 +0100 |
commit | 47fb9da6ad7123c5095bd4623ac0d745abcca677 (patch) | |
tree | c5c54407a5c2f3976e8008feb764390b1b1db4f8 /dbus/dbus-message-factory.c | |
parent | 56b9629d694e6baf92765eef0ea8a57b702c74ab (diff) | |
download | dbus-47fb9da6ad7123c5095bd4623ac0d745abcca677.tar.gz |
DBusMessage: don't redundantly store byte order, ask the DBusHeader
Reviewed-by: Thiago Macieira <thiago@kde.org>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38287
Diffstat (limited to 'dbus/dbus-message-factory.c')
-rw-r--r-- | dbus/dbus-message-factory.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/dbus/dbus-message-factory.c b/dbus/dbus-message-factory.c index 7fae5833..b5a06f1d 100644 --- a/dbus/dbus-message-factory.c +++ b/dbus/dbus-message-factory.c @@ -170,6 +170,7 @@ generate_many_bodies_inner (DBusMessageDataIter *iter, DBusMessage *message; DBusString signature; DBusString body; + char byte_order; /* Keeping this small makes things go faster */ message = dbus_message_new_method_call ("o.z.F", @@ -179,13 +180,15 @@ generate_many_bodies_inner (DBusMessageDataIter *iter, if (message == NULL) _dbus_assert_not_reached ("oom"); + byte_order = _dbus_header_get_byte_order (&message->header); + set_reply_serial (message); if (!_dbus_string_init (&signature) || !_dbus_string_init (&body)) _dbus_assert_not_reached ("oom"); if (dbus_internal_do_not_use_generate_bodies (iter_get_sequence (iter), - message->byte_order, + byte_order, &signature, &body)) { const char *v_SIGNATURE; @@ -202,7 +205,7 @@ generate_many_bodies_inner (DBusMessageDataIter *iter, _dbus_marshal_set_uint32 (&message->header.data, BODY_LENGTH_OFFSET, _dbus_string_get_length (&message->body), - message->byte_order); + byte_order); *message_p = message; } @@ -578,15 +581,18 @@ generate_special (DBusMessageDataIter *iter, } else if (item_seq == 8) { + char byte_order; + message = simple_method_call (); + byte_order = _dbus_header_get_byte_order (&message->header); generate_from_message (data, expected_validity, message); _dbus_marshal_set_uint32 (data, BODY_LENGTH_OFFSET, DBUS_MAXIMUM_MESSAGE_LENGTH / 2 + 4, - message->byte_order); + byte_order); _dbus_marshal_set_uint32 (data, FIELDS_ARRAY_LENGTH_OFFSET, DBUS_MAXIMUM_MESSAGE_LENGTH / 2 + 4, - message->byte_order); + byte_order); *expected_validity = DBUS_INVALID_MESSAGE_TOO_LONG; } else if (item_seq == 9) |