From a2a681582929ada667de5d05d5168f8a1f313800 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Sat, 25 Jan 2003 09:37:49 +0000 Subject: [PATCH] 2003-01-25 Anders Carlsson * dbus/dbus-connection.c: (dbus_connection_send_message): * dbus/dbus-message-internal.h: * dbus/dbus-message.c: (_dbus_message_get_client_serial), (dbus_message_write_header): Remove _dbus_messag_unlock and don't set the client serial on a message if one already exists. --- ChangeLog | 9 +++++++++ dbus/dbus-connection.c | 10 +++++----- dbus/dbus-message-internal.h | 1 + dbus/dbus-message.c | 32 +++++++++++++------------------- 4 files changed, 28 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92cfe5e..5d06c81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2003-01-25 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_client_serial), + (dbus_message_write_header): + Remove _dbus_messag_unlock and don't set the client serial on a + message if one already exists. + 2003-01-24 Havoc Pennington * dbus/dbus-list.c (alloc_link): put a thread lock on the global diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index 9fcabb9..f5e3342 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -644,12 +644,12 @@ dbus_connection_send_message (DBusConnection *connection, _dbus_verbose ("Message %p added to outgoing queue, %d pending to send\n", message, connection->n_outgoing); - /* Unlock the message, resetting its header. */ - _dbus_message_unlock (message); + if (_dbus_message_get_client_serial (message) == -1) + { + serial = _dbus_connection_get_next_client_serial (connection); + _dbus_message_set_client_serial (message, serial); + } - serial = _dbus_connection_get_next_client_serial (connection); - _dbus_message_set_client_serial (message, serial); - if (client_serial) *client_serial = serial; diff --git a/dbus/dbus-message-internal.h b/dbus/dbus-message-internal.h index 8059ecd..00adb40 100644 --- a/dbus/dbus-message-internal.h +++ b/dbus/dbus-message-internal.h @@ -38,6 +38,7 @@ void _dbus_message_lock (DBusMessage *message); void _dbus_message_unlock (DBusMessage *message); void _dbus_message_set_client_serial (DBusMessage *message, dbus_int32_t client_serial); +dbus_int32_t _dbus_message_get_client_serial (DBusMessage *message); dbus_int32_t _dbus_message_get_reply_serial (DBusMessage *message); void _dbus_message_add_size_counter (DBusMessage *message, DBusCounter *counter); diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index d5b1fb8..a42b797 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -125,6 +125,19 @@ _dbus_message_set_client_serial (DBusMessage *message, } /** + * Returns the client serial of a message or + * -1 if none has been specified. + * + * @param message the message + * @returns the client serial + */ +dbus_int32_t +_dbus_message_get_client_serial (DBusMessage *message) +{ + return message->client_serial; +} + +/** * Returns the serial that the message is * a reply to. * @@ -239,25 +252,6 @@ dbus_message_write_header (DBusMessage *message) } /** - * Unlocks a message so that it can be re-sent to another client. - * - * @see _dbus_message_lock - * @param message the message to unlock. - */ -void -_dbus_message_unlock (DBusMessage *message) -{ - if (!message->locked) - return; - - /* Restore header */ - _dbus_string_set_length (&message->header, 0); - - message->client_serial = -1; - message->locked = FALSE; -} - -/** * Locks a message. Allows checking that applications don't keep a * reference to a message in the outgoing queue and change it * underneath us. Messages are locked when they enter the outgoing -- 2.7.4