- Dispatch NameOwnerChanged signals to proxies only once (fdo #12505)

This commit is contained in:
Daniel Williams 2007-09-24 21:39:02 +00:00
parent 57165b0b50
commit 295f362582
2 changed files with 27 additions and 1 deletions

View File

@ -0,0 +1,22 @@
diff -up dbus-glib-0.73/dbus/dbus-gproxy.c.foo dbus-glib-0.73/dbus/dbus-gproxy.c
--- dbus-glib-0.73/dbus/dbus-gproxy.c.foo 2007-02-08 20:59:39.000000000 -0500
+++ dbus-glib-0.73/dbus/dbus-gproxy.c 2007-09-24 14:54:39.000000000 -0400
@@ -1232,8 +1235,15 @@ dbus_g_proxy_manager_filter (DBusConnect
dbus_message_get_interface (message));
owner_list = g_hash_table_lookup (manager->proxy_lists, tri);
- if (owner_list != NULL)
- full_list = g_slist_concat (full_list, g_slist_copy (owner_list->proxies));
+ if (owner_list != NULL) {
+ GSList *elt;
+
+ /* Ignore duplicates when adding to full_list */
+ for (elt = owner_list->proxies; elt; elt = g_slist_next (elt)) {
+ if (!g_slist_find (full_list, elt->data))
+ full_list = g_slist_append (full_list, elt->data);
+ }
+ }
g_free (tri);
}
}

View File

@ -8,11 +8,12 @@
Summary: GLib bindings for D-Bus
Name: dbus-glib
Version: 0.73
Release: 3%{?dist}
Release: 4%{?dist}
URL: http://www.freedesktop.org/software/dbus/
Source0: http://dbus.freedesktop.org/releases/%{name}-%{version}.tar.gz
Source1: dbus-bus-introspect.xml
Patch0: broken-xml.patch
Patch1: dbus-glib-proxy-signals-once.patch
License: AFL/GPL
Group: System Environment/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -114,6 +115,9 @@ rm -rf %{buildroot}
%endif
%changelog
* Mon Sep 24 2007 Dan Williams <dcbw@redhat.com> - 0.73-4
- Dispatch NameOwnerChanged signals to proxies only once (fdo #12505)
* Sat Sep 15 2007 Matthias Clasen <mclasen@redhat.com> - 0.73-3
- Rebuild against new expat