diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/_dbus.py | 4 | ||||
| -rw-r--r-- | python/matchrules.py | 12 | 
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  | 
