add a dummy class to debug python refcounting (add entrys of TestObj to your tuple...
[vuplus_dvbapp] / lib / python / python.cpp
index a1ef150..f467bc8 100644 (file)
@@ -4,6 +4,18 @@
 
 extern "C" void init_enigma();
 
+DEFINE_REF(TestObj);
+
+TestObj::TestObj()
+{
+       eDebug("create %p", this);
+}
+
+TestObj::~TestObj()
+{
+       eDebug("destroy %p", this);
+}
+
 #if 0
 ePyObject::ePyObject(void *ptr): m_object(ptr)
 {
@@ -104,7 +116,10 @@ int ePython::call(PyObject *pFunc, PyObject *pArgs)
                pValue = PyObject_CallObject(pFunc, pArgs);
                if (pValue != NULL)
                {
-                       res = PyInt_AsLong(pValue);
+                       if (PyInt_Check(pValue))
+                               res = PyInt_AsLong(pValue);
+                       else
+                               res = 0;
                        Py_DECREF(pValue);
                } else
                {
@@ -129,7 +144,6 @@ PyObject *ePython::resolve(const std::string &pythonfile, const std::string &fun
                pFunc = PyDict_GetItemString(pDict, funcname.c_str());
                Py_XINCREF(pFunc);
                Py_DECREF(pModule);
-               eDebug("resolved to %p", pFunc);
                return pFunc;
        } else
        {