diff options
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | dbus/dbus-connection.c | 7 | 
2 files changed, 13 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2006-09-08  John (J5) Palmieri  <johnp@redhat.com> + +	* dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove +	filters (Patch from Kimmo Hämäläinen  +	<kimmo dot hamalainen at nokia dot com>) +  2006-09-07  John (J5) Palmieri  <johnp@redhat.com>  	* dbus/dbus-connection-internal.h: Add prototype for  diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index 8033c4a5..91f7770c 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -3718,6 +3718,13 @@ dbus_connection_dispatch (DBusConnection *connection)        DBusMessageFilter *filter = link->data;        DBusList *next = _dbus_list_get_next_link (&filter_list_copy, link); +      if (filter->function == NULL) +        { +          _dbus_verbose ("  filter was removed in a callback function\n"); +          link = next; +          continue; +        } +        _dbus_verbose ("  running filter on message %p\n", message);        result = (* filter->function) (connection, message, filter->user_data);  | 
