git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
better wss setup
[enigma2.git]
/
lib
/
python
/
python.cpp
diff --git
a/lib/python/python.cpp
b/lib/python/python.cpp
index 9e7e5c215f8b43473d5297d99f3b1cc252cc7439..f467bc86dc7d1a63a4827e72d38c4e5901a7f715 100644
(file)
--- a/
lib/python/python.cpp
+++ b/
lib/python/python.cpp
@@
-4,6
+4,18
@@
extern "C" void init_enigma();
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)
{
@@
-95,21
+107,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
+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);
pFunc = PyDict_GetItemString(pDict, funcname.c_str());
Py_XINCREF(pFunc);
Py_DECREF(pModule);
- eDebug("resolved to %p", pFunc);
return pFunc;
} else
{
return pFunc;
} else
{