diff options
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/dbus-connection.c | 2 | ||||
-rw-r--r-- | dbus/dbus-transport-unix.c | 10 | ||||
-rw-r--r-- | dbus/dbus-watch.c | 1 |
3 files changed, 9 insertions, 4 deletions
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index 9da5fb52..d877a0b4 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -36,7 +36,7 @@ #include "dbus-protocol.h" #include "dbus-dataslot.h" -#if 1 +#if 0 #define CONNECTION_LOCK(connection) do { \ _dbus_verbose (" LOCK: %s\n", _DBUS_FUNCTION_NAME); \ dbus_mutex_lock ((connection)->mutex); \ diff --git a/dbus/dbus-transport-unix.c b/dbus/dbus-transport-unix.c index fbf334e4..5df1c461 100644 --- a/dbus/dbus-transport-unix.c +++ b/dbus/dbus-transport-unix.c @@ -593,11 +593,9 @@ do_reading (DBusTransport *transport) total = 0; again: - + /* See if we've exceeded max messages and need to disable reading */ check_read_watch (transport); - if (!dbus_watch_get_enabled (unix_transport->read_watch)) - return TRUE; if (total > unix_transport->max_bytes_read_per_iteration) { @@ -606,9 +604,15 @@ do_reading (DBusTransport *transport) goto out; } + _dbus_assert (unix_transport->read_watch != NULL || + transport->disconnected); + if (transport->disconnected) goto out; + if (!dbus_watch_get_enabled (unix_transport->read_watch)) + return TRUE; + if (_dbus_auth_needs_decoding (transport->auth)) { if (_dbus_string_get_length (&unix_transport->encoded_incoming) > 0) diff --git a/dbus/dbus-watch.c b/dbus/dbus-watch.c index 55b182b2..5b59e8c8 100644 --- a/dbus/dbus-watch.c +++ b/dbus/dbus-watch.c @@ -535,6 +535,7 @@ dbus_watch_set_data (DBusWatch *watch, dbus_bool_t dbus_watch_get_enabled (DBusWatch *watch) { + _dbus_assert (watch != NULL); return watch->enabled; } |