summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/_dbus.py4
-rw-r--r--python/matchrules.py12
2 files changed, 11 insertions, 5 deletions
diff --git a/python/_dbus.py b/python/_dbus.py
index d52aa8fc..652d27bd 100644
--- a/python/_dbus.py
+++ b/python/_dbus.py
@@ -126,7 +126,9 @@ class Bus:
named_service = bus_object.GetNameOwner(named_service, dbus_interface='org.freedesktop.DBus')
match_rule = SignalMatchRule(signal_name, dbus_interface, named_service, path)
- match_rule.add_handler(handler_function)
+
+ if (handler_function):
+ match_rule.add_handler(handler_function)
self._match_rule_tree.remove(match_rule)
diff --git a/python/matchrules.py b/python/matchrules.py
index 6d5fcd86..9a7edb3e 100644
--- a/python/matchrules.py
+++ b/python/matchrules.py
@@ -52,7 +52,7 @@ class SignalMatchNode:
def remove_child(self, child, key=None):
if self.wildcard == child:
self.wildcard = None
- elif self.finite.had_key(key):
+ elif self.finite.has_key(key):
del self.finite[key]
class SignalMatchTree:
@@ -139,11 +139,15 @@ class SignalMatchRule:
self.dbus_interface == rule.dbus_interface and
self.sender == rule.sender and
self.path == rule.path):
- _funcs_copy_a = self.dbus.handler_functions[0:]
- _funcs_copy_b = rule.dbus.handler_functions[0:]
+ if rule.handler_functions == []:
+ return True
+
+ _funcs_copy_a = self.handler_functions[0:]
+ _funcs_copy_b = rule.handler_functions[0:]
_funcs_copy_a.sort()
_funcs_copy_b.sort()
- return a == b
+
+ return _funcs_copy_a == _funcs_copy_b
return False