diff options
author | Havoc Pennington <hp@redhat.com> | 2003-03-16 08:31:00 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-03-16 08:31:00 +0000 |
commit | 5c53fb2a36024c66b3aaa6d26e93a802393664b2 (patch) | |
tree | f9911e2f7e8f5207138fe462b5ec0115c2c91d94 /dbus/dbus-transport-unix.c | |
parent | ce173b29fc1e9432cb5956952afdbe775da12415 (diff) |
2003-03-16 Havoc Pennington <hp@pobox.com>
* dbus/dbus-connection.c
(_dbus_connection_queue_received_message_link): new function that
can't fail due to OOM
* dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
new function pops a message together with a list link
containing it.
* dbus/dbus-transport-unix.c (queue_messages): use new link-based
message queuing functions to avoid needing to alloc memory
Diffstat (limited to 'dbus/dbus-transport-unix.c')
-rw-r--r-- | dbus/dbus-transport-unix.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/dbus/dbus-transport-unix.c b/dbus/dbus-transport-unix.c index 17d74886..ed68658b 100644 --- a/dbus/dbus-transport-unix.c +++ b/dbus/dbus-transport-unix.c @@ -181,19 +181,22 @@ do_io_error (DBusTransport *transport) static void queue_messages (DBusTransport *transport) { - DBusMessage *message; + DBusList *link; /* Queue any messages */ - while ((message = _dbus_message_loader_pop_message (transport->loader))) + while ((link = _dbus_message_loader_pop_message_link (transport->loader))) { + DBusMessage *message; + + message = link->data; + _dbus_verbose ("queueing received message %p\n", message); _dbus_message_add_size_counter (message, transport->live_messages_size); - if (!_dbus_connection_queue_received_message (transport->connection, - message)) - /* FIXME woops! */; - - dbus_message_unref (message); + + /* pass ownership of link and message ref to connection */ + _dbus_connection_queue_received_message_link (transport->connection, + link); } if (_dbus_message_loader_get_is_corrupted (transport->loader)) |