From f587ce7845edb0eb01451368d01b5bc86b5904cd Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 15 Mar 2003 20:47:16 +0000 Subject: 2003-03-15 Havoc Pennington Make it pass the Hello handling test including all OOM codepaths. Now to do other messages... * bus/services.c (bus_service_remove_owner): fix crash when removing owner from an empty list of owners (bus_registry_ensure): don't leave service in the list of a connection's owned services if we fail to put the service in the hash table. * bus/connection.c (bus_connection_preallocate_oom_error): set error flag on the OOM error. * dbus/dbus-connection.c (_dbus_connection_new_for_transport): handle _dbus_transport_set_connection failure * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify to create watches up front and simply enable/disable them as needed. (unix_connection_set): this can now fail on OOM * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept of enabling/disabling a watch or timeout. * bus/loop.c (bus_loop_iterate): don't touch disabled watches/timeouts * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts --- dbus/dbus-transport-debug.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'dbus/dbus-transport-debug.c') diff --git a/dbus/dbus-transport-debug.c b/dbus/dbus-transport-debug.c index 42d1efdc..a7db3a6e 100644 --- a/dbus/dbus-transport-debug.c +++ b/dbus/dbus-transport-debug.c @@ -147,10 +147,8 @@ check_timeout (DBusTransport *transport) { if (!debug_transport->timeout_added) { - /* FIXME; messages_pending is going to have to - * handle OOM somehow (probably being part of - * PreallocatedSend). See also dbus-transport-unix.c - * check_write_watch() + /* FIXME this can be fixed now, by enabling/disabling + * the timeout instead of adding it here */ while (!_dbus_connection_add_timeout (transport->connection, debug_transport->timeout)) @@ -203,10 +201,11 @@ debug_disconnect (DBusTransport *transport) { } -static void +static dbus_bool_t debug_connection_set (DBusTransport *transport) { check_timeout (transport); + return TRUE; } static void -- cgit