ignore errors in Python script and clear exceptions
This commit is contained in:
parent
14eb197f9f
commit
cfec49f14e
|
@ -142,7 +142,14 @@ PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
|
||||||
{
|
{
|
||||||
PyObject *rainmeterObject = CreateRainmeterObject(rm);
|
PyObject *rainmeterObject = CreateRainmeterObject(rm);
|
||||||
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "Reload", "Od", rainmeterObject, maxValue);
|
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "Reload", "Od", rainmeterObject, maxValue);
|
||||||
Py_XDECREF(resultObj);
|
if (resultObj != NULL)
|
||||||
|
{
|
||||||
|
Py_DECREF(resultObj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PyErr_Clear();
|
||||||
|
}
|
||||||
Py_DECREF(rainmeterObject);
|
Py_DECREF(rainmeterObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,7 +165,15 @@ PLUGIN_EXPORT double Update(void* data)
|
||||||
}
|
}
|
||||||
PyEval_RestoreThread(measure->pyThreadState);
|
PyEval_RestoreThread(measure->pyThreadState);
|
||||||
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "Update", NULL);
|
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "Update", NULL);
|
||||||
double result = resultObj && PyFloat_Check(resultObj) ? PyFloat_AsDouble(resultObj) : 0.0;
|
double result = 0.0;
|
||||||
|
if (resultObj != NULL)
|
||||||
|
{
|
||||||
|
result = PyFloat_Check(resultObj) ? PyFloat_AsDouble(resultObj) : 0.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PyErr_Clear();
|
||||||
|
}
|
||||||
Py_XDECREF(resultObj);
|
Py_XDECREF(resultObj);
|
||||||
PyEval_SaveThread();
|
PyEval_SaveThread();
|
||||||
return result;
|
return result;
|
||||||
|
@ -189,6 +204,10 @@ PLUGIN_EXPORT LPCWSTR GetString(void* data)
|
||||||
}
|
}
|
||||||
Py_DECREF(resultObj);
|
Py_DECREF(resultObj);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PyErr_Clear();
|
||||||
|
}
|
||||||
PyEval_SaveThread();
|
PyEval_SaveThread();
|
||||||
return measure->getStringResult;
|
return measure->getStringResult;
|
||||||
}
|
}
|
||||||
|
@ -204,7 +223,14 @@ PLUGIN_EXPORT void ExecuteBang(void* data, LPCWSTR args)
|
||||||
PyEval_RestoreThread(measure->pyThreadState);
|
PyEval_RestoreThread(measure->pyThreadState);
|
||||||
PyObject *argsObj = PyUnicode_FromWideChar(args, -1);
|
PyObject *argsObj = PyUnicode_FromWideChar(args, -1);
|
||||||
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "ExecuteBang", "O", argsObj);
|
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "ExecuteBang", "O", argsObj);
|
||||||
Py_XDECREF(resultObj);
|
if (resultObj != NULL)
|
||||||
|
{
|
||||||
|
Py_DECREF(resultObj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PyErr_Clear();
|
||||||
|
}
|
||||||
Py_DECREF(argsObj);
|
Py_DECREF(argsObj);
|
||||||
PyEval_SaveThread();
|
PyEval_SaveThread();
|
||||||
}
|
}
|
||||||
|
@ -216,7 +242,15 @@ PLUGIN_EXPORT void Finalize(void* data)
|
||||||
if (measure->measureObject != NULL)
|
if (measure->measureObject != NULL)
|
||||||
{
|
{
|
||||||
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "Finalize", NULL);
|
PyObject *resultObj = PyObject_CallMethod(measure->measureObject, "Finalize", NULL);
|
||||||
Py_XDECREF(resultObj);
|
if (resultObj != NULL)
|
||||||
|
{
|
||||||
|
Py_DECREF(resultObj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PyErr_Clear();
|
||||||
|
}
|
||||||
|
|
||||||
if (measure->getStringResult != NULL)
|
if (measure->getStringResult != NULL)
|
||||||
{
|
{
|
||||||
PyMem_Free(measure->getStringResult);
|
PyMem_Free(measure->getStringResult);
|
||||||
|
|
Loading…
Reference in New Issue