|
@@ -437,6 +437,7 @@ void watcher_dispatch(zhandle_t *zzh, int type, int state,
|
|
|
if (PyObject_CallObject((PyObject*)callback, arglist) == NULL) {
|
|
|
PyErr_Print();
|
|
|
}
|
|
|
+ Py_DECREF(arglist);
|
|
|
if (pyw->permanent == 0 && (type != ZOO_SESSION_EVENT || state < 0)) {
|
|
|
free_pywatcher(pyw);
|
|
|
}
|
|
@@ -458,6 +459,7 @@ void void_completion_dispatch(int rc, const void *data)
|
|
|
PyObject *arglist = Py_BuildValue("(i,i)", pyw->zhandle, rc);
|
|
|
if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
|
|
|
PyErr_Print();
|
|
|
+ Py_DECREF(arglist);
|
|
|
free_pywatcher(pyw);
|
|
|
PyGILState_Release(gstate);
|
|
|
}
|
|
@@ -475,9 +477,9 @@ void stat_completion_dispatch(int rc, const struct Stat *stat, const void *data)
|
|
|
PyObject *pystat = build_stat(stat);
|
|
|
PyObject *arglist = Py_BuildValue("(i,i,O)", pyw->zhandle,rc, pystat);
|
|
|
Py_DECREF(pystat);
|
|
|
-
|
|
|
if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
|
|
|
PyErr_Print();
|
|
|
+ Py_DECREF(arglist);
|
|
|
free_pywatcher(pyw);
|
|
|
PyGILState_Release(gstate);
|
|
|
}
|
|
@@ -499,6 +501,7 @@ void data_completion_dispatch(int rc, const char *value, int value_len, const st
|
|
|
|
|
|
if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
|
|
|
PyErr_Print();
|
|
|
+ Py_DECREF(arglist);
|
|
|
free_pywatcher(pyw);
|
|
|
PyGILState_Release(gstate);
|
|
|
}
|
|
@@ -519,6 +522,7 @@ void strings_completion_dispatch(int rc, const struct String_vector *strings, co
|
|
|
PyObject *arglist = Py_BuildValue("(i,i,O)", pyw->zhandle, rc, pystrings);
|
|
|
if (arglist == NULL || PyObject_CallObject((PyObject*)callback, arglist) == NULL)
|
|
|
PyErr_Print();
|
|
|
+ Py_DECREF(arglist);
|
|
|
}
|
|
|
else
|
|
|
PyErr_Print();
|
|
@@ -541,6 +545,7 @@ void string_completion_dispatch(int rc, const char *value, const void *data)
|
|
|
PyObject *arglist = Py_BuildValue("(i,i,s)", pyw->zhandle,rc, value);
|
|
|
if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
|
|
|
PyErr_Print();
|
|
|
+ Py_DECREF(arglist);
|
|
|
free_pywatcher(pyw);
|
|
|
PyGILState_Release(gstate);
|
|
|
}
|
|
@@ -566,6 +571,7 @@ void acl_completion_dispatch(int rc, struct ACL_vector *acl, struct Stat *stat,
|
|
|
if (PyObject_CallObject((PyObject*)callback, arglist) == NULL) {
|
|
|
PyErr_Print();
|
|
|
}
|
|
|
+ Py_DECREF(arglist);
|
|
|
free_pywatcher(pyw);
|
|
|
PyGILState_Release(gstate);
|
|
|
}
|