small cleanup
[vuplus_dvbapp] / lib / base / ebase.cpp
index 62746f4..e770863 100644 (file)
@@ -368,16 +368,19 @@ struct eTimerPy
 static int
 eTimerPy_traverse(eTimerPy *self, visitproc visit, void *arg)
 {
-       PyObject *obj = self->tm->timeout.get();
-       Py_VISIT(obj);
+       PyObject *obj = self->tm->timeout.get(true);
+       if (obj) {
+               Py_VISIT(obj);
+       }
        return 0;
 }
 
 static int
 eTimerPy_clear(eTimerPy *self)
 {
-       PyObject *obj = self->tm->timeout.get();
-       Py_CLEAR(obj);
+       PyObject *obj = self->tm->timeout.get(true);
+       if (obj)
+               Py_CLEAR(obj);
        return 0;
 }
 
@@ -436,8 +439,8 @@ eTimerPy_start(eTimerPy* self, PyObject *args)
 static PyObject *
 eTimerPy_start_long(eTimerPy* self, PyObject *args)
 {
-       long v=0;
-       if (!PyArg_ParseTuple(args, "l", &v)) {
+       int v=0;
+       if (!PyArg_ParseTuple(args, "i", &v)) {
                return NULL;
        }
        self->tm->startLongTimer(v);
@@ -572,16 +575,18 @@ struct eSocketNotifierPy
 static int
 eSocketNotifierPy_traverse(eSocketNotifierPy *self, visitproc visit, void *arg)
 {
-       PyObject *obj = self->sn->activated.get();
-       Py_VISIT(obj);
+       PyObject *obj = self->sn->activated.get(true);
+       if (obj)
+               Py_VISIT(obj);
        return 0;
 }
 
 static int
 eSocketNotifierPy_clear(eSocketNotifierPy *self)
 {
-       PyObject *obj = self->sn->activated.get();
-       Py_CLEAR(obj);
+       PyObject *obj = self->sn->activated.get(true);
+       if (obj)
+               Py_CLEAR(obj);
        return 0;
 }
 
@@ -748,9 +753,7 @@ static PyMethodDef module_methods[] = {
 
 void eBaseInit(void)
 {
-       PyObject* m;
-
-       m = Py_InitModule3("eBaseImpl", module_methods,
+       PyObject* m = Py_InitModule3("eBaseImpl", module_methods,
                "Module that implements some enigma classes with working cyclic garbage collection.");
 
        if (m == NULL)