diff options
Diffstat (limited to 'recipes/dbus/dbus-1.3.0/will-5.patch')
-rw-r--r-- | recipes/dbus/dbus-1.3.0/will-5.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/recipes/dbus/dbus-1.3.0/will-5.patch b/recipes/dbus/dbus-1.3.0/will-5.patch deleted file mode 100644 index ed100005cf..0000000000 --- a/recipes/dbus/dbus-1.3.0/will-5.patch +++ /dev/null @@ -1,116 +0,0 @@ -From a40a026527e718547f32e134e7c27a561b1eba47 Mon Sep 17 00:00:00 2001 -From: Will Thompson <will.thompson@collabora.co.uk> -Date: Wed, 29 Jul 2009 20:03:40 +0100 -Subject: [PATCH 5/6] Extract rule_list_remove_by_connection - ---- - bus/signals.c | 82 +++++++++++++++++++++++++++++++------------------------- - 1 files changed, 45 insertions(+), 37 deletions(-) - -diff --git a/bus/signals.c b/bus/signals.c -index 3cf846e..c6f122b 100644 ---- a/bus/signals.c -+++ b/bus/signals.c -@@ -1285,11 +1285,54 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker, - return TRUE; - } - -+static void -+rule_list_remove_by_connection (DBusList **rules, -+ DBusConnection *disconnected) -+{ -+ DBusList *link; -+ -+ link = _dbus_list_get_first_link (rules); -+ while (link != NULL) -+ { -+ BusMatchRule *rule; -+ DBusList *next; -+ -+ rule = link->data; -+ next = _dbus_list_get_next_link (rules, link); -+ -+ if (rule->matches_go_to == disconnected) -+ { -+ bus_matchmaker_remove_rule_link (rules, link); -+ } -+ else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') || -+ ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':')) -+ { -+ /* The rule matches to/from a base service, see if it's the -+ * one being disconnected, since we know this service name -+ * will never be recycled. -+ */ -+ const char *name; -+ -+ name = bus_connection_get_name (disconnected); -+ _dbus_assert (name != NULL); /* because we're an active connection */ -+ -+ if (((rule->flags & BUS_MATCH_SENDER) && -+ strcmp (rule->sender, name) == 0) || -+ ((rule->flags & BUS_MATCH_DESTINATION) && -+ strcmp (rule->destination, name) == 0)) -+ { -+ bus_matchmaker_remove_rule_link (rules, link); -+ } -+ } -+ -+ link = next; -+ } -+} -+ - void - bus_matchmaker_disconnected (BusMatchmaker *matchmaker, - DBusConnection *disconnected) - { -- DBusList *link; - int i; - - /* FIXME -@@ -1307,42 +1350,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker, - { - DBusList **rules = bus_matchmaker_get_rules (matchmaker, i); - -- link = _dbus_list_get_first_link (rules); -- while (link != NULL) -- { -- BusMatchRule *rule; -- DBusList *next; -- -- rule = link->data; -- next = _dbus_list_get_next_link (rules, link); -- -- if (rule->matches_go_to == disconnected) -- { -- bus_matchmaker_remove_rule_link (rules, link); -- } -- else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') || -- ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':')) -- { -- /* The rule matches to/from a base service, see if it's the -- * one being disconnected, since we know this service name -- * will never be recycled. -- */ -- const char *name; -- -- name = bus_connection_get_name (disconnected); -- _dbus_assert (name != NULL); /* because we're an active connection */ -- -- if (((rule->flags & BUS_MATCH_SENDER) && -- strcmp (rule->sender, name) == 0) || -- ((rule->flags & BUS_MATCH_DESTINATION) && -- strcmp (rule->destination, name) == 0)) -- { -- bus_matchmaker_remove_rule_link (rules, link); -- } -- } -- -- link = next; -- } -+ rule_list_remove_by_connection (rules, disconnected); - } - } - --- -1.6.3.3 - |