git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
another fix
[enigma2.git]
/
lib
/
python
/
python.cpp
diff --git
a/lib/python/python.cpp
b/lib/python/python.cpp
index 14e32af6a743f8e76d571ca27e754c16622a1b6a..4ca77ab2f6bf88825d5f62a79b2e5463646bf885 100644
(file)
--- a/
lib/python/python.cpp
+++ b/
lib/python/python.cpp
@@
-1,9
+1,24
@@
#include <lib/python/python.h>
#include <lib/base/eerror.h>
#include <lib/python/python.h>
#include <lib/base/eerror.h>
+ /* avoid warnigs :) */
+#undef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 200112L
#include <Python.h>
extern "C" void init_enigma();
#include <Python.h>
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)
{
#if 0
ePyObject::ePyObject(void *ptr): m_object(ptr)
{
@@
-44,6
+59,8
@@
ePyObject &ePyObject::operator=(void *object)
ePython::ePython()
{
ePython::ePython()
{
+// Py_VerboseFlag = 1;
+
Py_Initialize();
init_enigma();
Py_Initialize();
init_enigma();
@@
-95,21
+112,26
@@
int ePython::execute(const std::string &pythonfile, const std::string &funcname)
return 0;
}
return 0;
}
-
void
ePython::call(PyObject *pFunc, PyObject *pArgs)
+
int
ePython::call(PyObject *pFunc, PyObject *pArgs)
{
{
+ int res = -1;
PyObject *pValue;
if (pFunc && PyCallable_Check(pFunc))
{
pValue = PyObject_CallObject(pFunc, pArgs);
if (pValue != NULL)
{
PyObject *pValue;
if (pFunc && PyCallable_Check(pFunc))
{
pValue = PyObject_CallObject(pFunc, pArgs);
if (pValue != NULL)
{
-// printf("Result of call: %ld\n", PyInt_AsLong(pValue));
+ if (PyInt_Check(pValue))
+ res = PyInt_AsLong(pValue);
+ else
+ res = 0;
Py_DECREF(pValue);
} else
{
PyErr_Print();
}
}
Py_DECREF(pValue);
} else
{
PyErr_Print();
}
}
+ return res;
}
PyObject *ePython::resolve(const std::string &pythonfile, const std::string &funcname)
}
PyObject *ePython::resolve(const std::string &pythonfile, const std::string &funcname)
@@
-127,7
+149,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);
pFunc = PyDict_GetItemString(pDict, funcname.c_str());
Py_XINCREF(pFunc);
Py_DECREF(pModule);
- eDebug("resolved to %p", pFunc);
return pFunc;
} else
{
return pFunc;
} else
{