add support for cyclic garbage collection to eTimer and eSocketNotifier
[vuplus_dvbapp] / lib / python / python.cpp
index 8947bb3..ad029fb 100644 (file)
@@ -3,6 +3,7 @@
 #undef _POSIX_C_SOURCE
 #define _POSIX_C_SOURCE 200112L
 extern "C" void init_enigma();
+extern "C" void eBaseInit(void);
 extern void bsodFatal();
 
 #define SKIP_PART2
@@ -114,18 +115,6 @@ void ePyObject::decref(const char *file, int line)
 #include <lib/python/python.h>
 #undef SKIP_PART1
 
-DEFINE_REF(TestObj);
-
-TestObj::TestObj()
-{
-       eDebug("create %p", this);
-}
-
-TestObj::~TestObj()
-{
-       eDebug("destroy %p", this);
-}
-
 ePython::ePython()
 {
 //     Py_VerboseFlag = 1;
@@ -133,8 +122,10 @@ ePython::ePython()
 //     Py_OptimizeFlag = 1;
        
        Py_Initialize();
-       
+       PyEval_InitThreads();
+
        init_enigma();
+       eBaseInit();
 }
 
 ePython::~ePython()
@@ -199,6 +190,11 @@ int ePython::call(ePyObject pFunc, ePyObject pArgs)
                } else
                {
                        PyErr_Print();
+                       ePyObject FuncStr = PyObject_Str(pFunc);
+                       ePyObject ArgStr = PyObject_Str(pArgs);
+                       eDebug("(PyObject_CallObject(%s,%s) failed)", PyString_AS_STRING(FuncStr), PyString_AS_STRING(ArgStr));
+                       Py_DECREF(FuncStr);
+                       Py_DECREF(ArgStr);
                        bsodFatal();
                }
        }