Issue #20437: Fixed 22 potential bugs when deleting objects references.

This commit is contained in:
Serhiy Storchaka 2014-02-09 13:46:20 +02:00
commit dfe98a102e
15 changed files with 34 additions and 63 deletions

View file

@ -281,8 +281,7 @@ set_hook(const char *funcname, PyObject **hook_var, PyObject *args)
if (!PyArg_ParseTuple(args, buf, &function))
return NULL;
if (function == Py_None) {
Py_XDECREF(*hook_var);
*hook_var = NULL;
Py_CLEAR(*hook_var);
}
else if (PyCallable_Check(function)) {
PyObject *tmp = *hook_var;
@ -885,7 +884,7 @@ on_completion_display_matches_hook(char **matches,
(r != Py_None && PyLong_AsLong(r) == -1 && PyErr_Occurred())) {
goto error;
}
Py_XDECREF(r); r=NULL;
Py_CLEAR(r);
if (0) {
error: