[kupfer: 4/23] plugin.skype: use weakref for callback in Notify
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 4/23] plugin.skype: use weakref for callback in Notify
- Date: Sat, 2 Jan 2010 23:10:38 +0000 (UTC)
commit 0d2727075563442883b37f2fc192b17068b7908d
Author: Karol BÄ?dkowski <karol bedkowsk+gh gmail com>
Date: Mon Nov 16 08:07:47 2009 +0100
plugin.skype: use weakref for callback in Notify
kupfer/plugin/skype.py | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/kupfer/plugin/skype.py b/kupfer/plugin/skype.py
index e07bba5..126b773 100644
--- a/kupfer/plugin/skype.py
+++ b/kupfer/plugin/skype.py
@@ -4,6 +4,7 @@ from kupfer.objects import Leaf, Action, Source, AppLeafContentMixin, AppLeaf
from kupfer.helplib import PicklingHelperMixin
from kupfer import pretty
+
__kupfer_name__ = _("Skype")
__kupfer_sources__ = ("ContactsSource", )
__kupfer_actions__ = ("ChangeStatus", )
@@ -12,7 +13,7 @@ __version__ = "0.1"
__author__ = "Karol BÄ?dkowski <karol bedkowski gmail com>"
import dbus
-
+import weakref
SKYPE_IFACE = 'com.Skype.API'
SKYPE_PATH_CLIENT = '/com/Skype/Client'
@@ -126,7 +127,7 @@ class _Skype(object):
self._signal_dbus_name_owner_changed()
def bind(self, callback):
- self._callback = callback
+ self._callback = weakref.ref(callback)
def _signal_dbus_name_owner_changed(self, *args, **kwarg):
pretty.print_debug(__name__, '_Skype', '_signal_update', args, kwarg)
@@ -135,9 +136,9 @@ class _Skype(object):
def _signal_update(self, *args, **kwargs):
pretty.print_debug(__name__, '_Skype', '_signal_update', args, kwargs)
- if self._callback:
+ if self._callback and self._callback():
try:
- self._callback(*args, **kwargs)
+ self._callback()(*args, **kwargs)
except Exception, err:
pretty.print_error(__name__, '_Skype', '_signal_update:call', err)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]