summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2008-09-16 11:27:24 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2008-09-16 11:27:24 +0100
commit29774bca65ef7f887f9dafda56cb167dc0a2e80e (patch)
treea6204a5f75689de106af31229c06a8e17f1f4659
parent884acb58ef583a7565bfa88f2dc161d10c8adde6 (diff)
parent6a945076699cd0a5eebde6bcf22a3cc4a4f9e547 (diff)
Merge branch 'mpg'
-rw-r--r--dbus/connection.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/dbus/connection.py b/dbus/connection.py
index e2ec3b2..d76aaf2 100644
--- a/dbus/connection.py
+++ b/dbus/connection.py
@@ -484,7 +484,15 @@ class Connection(_Connection):
deletions.append(match)
else:
new.append(match)
- by_member[signal_name] = new
+
+ if new:
+ by_member[signal_name] = new
+ else:
+ del by_member[signal_name]
+ if not by_member:
+ del by_interface[dbus_interface]
+ if not by_interface:
+ del self._signal_recipients_by_object_path[path]
finally:
self._signals_lock.release()