X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/eb075d3df639057b1f99d65563781401386fb3d4..8c84c2a2c0b8d33404540ab50278de63d3c7fccc:/lib/dvb/epgcache.cpp diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index 88fd677a..60eee05a 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -1264,21 +1264,26 @@ PyObject *handleEvent(ePtr &ptr, PyObject *dest_list, char* argst if (convertFunc) { fillTuple(convertFuncArgs, argstring, argcount, service, ptr, nowTime, service_name); - PyObject *result = PyEval_CallObject(convertFunc, convertFuncArgs); + PyObject *result = PyObject_CallObject(convertFunc, convertFuncArgs); if (result == NULL) { + if (service_name) + Py_DECREF(service_name); if (nowTime) Py_DECREF(nowTime); Py_DECREF(convertFuncArgs); + Py_DECREF(dest_list); return result; } PyList_Append(dest_list, result); + Py_DECREF(result); } else { PyObject *tuple = PyTuple_New(argcount); fillTuple(tuple, argstring, argcount, service, ptr, nowTime, service_name); PyList_Append(dest_list, tuple); + Py_DECREF(tuple); } return 0; }