]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
* dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
authorJohn (J5) Palmieri <johnp@redhat.com>
Fri, 8 Sep 2006 15:23:50 +0000 (15:23 +0000)
committerJohn (J5) Palmieri <johnp@redhat.com>
Fri, 8 Sep 2006 15:23:50 +0000 (15:23 +0000)
 filters (Patch from Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)

ChangeLog
dbus/dbus-connection.c

index adec6ca0ead2db04c3500a7af0acddfdd9219526..1ac41cdfbc3262388cee4fd6ef9be15d69b57fe9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 
index 8033c4a549c107c3edc5bef6ba1cda256fd46ad3..91f7770c46fcb32b8f65f07b1d04dceabe149470 100644 (file)
@@ -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);