diff options
author | Dan Williams <dcbw@redhat.com> | 2007-07-16 18:00:32 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2007-07-16 18:00:32 (GMT) |
commit | 1698c297c76ed34238a888fc56267209fd3c9bc0 (patch) | |
tree | 696327b3bc20cfc92b1ec404ef59cf5de675d197 /sugar/presence | |
parent | a0ad81b58b59acea3f7f9100025e2fc0be5f53d5 (diff) |
Suppress traceback when creating a new buddy object on buddy-disappeared signal
Diffstat (limited to 'sugar/presence')
-rw-r--r-- | sugar/presence/presenceservice.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sugar/presence/presenceservice.py b/sugar/presence/presenceservice.py index a0b60ee..4a92dd3 100644 --- a/sugar/presence/presenceservice.py +++ b/sugar/presence/presenceservice.py @@ -169,6 +169,9 @@ class PresenceService(gobject.GObject): self._objcache[object_path] = obj return obj + def _have_object(self, object_path): + return object_path in self._objcache.keys() + def _del_object(self, object_path): """Fully remove an object from the object cache when it's no longer needed. """ @@ -185,7 +188,10 @@ class PresenceService(gobject.GObject): def _emit_buddy_disappeared_signal(self, object_path): """Emit GObject event with presence.buddy.Buddy object""" - self.emit('buddy-disappeared', self._new_object(object_path)) + # Don't try to create a new object here if needed; it will probably + # fail anyway because the object has already been destroyed in the PS + if self._have_object(object_path): + self.emit('buddy-disappeared', self._new_object(object_path)) return False def _buddy_disappeared_cb(self, object_path): |