mirror of
https://github.com/python/cpython.git
synced 2025-10-22 06:32:43 +00:00
Fix refleaks
This commit is contained in:
parent
9edcc2e2fd
commit
2cde0eb922
1 changed files with 4 additions and 0 deletions
|
@ -695,6 +695,7 @@ build_node_children(PyObject *tuple, node *root, int *line_num)
|
||||||
" found %s",
|
" found %s",
|
||||||
Py_Type(temp)->tp_name);
|
Py_Type(temp)->tp_name);
|
||||||
Py_DECREF(temp);
|
Py_DECREF(temp);
|
||||||
|
Py_DECREF(elem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (len == 3) {
|
if (len == 3) {
|
||||||
|
@ -709,6 +710,7 @@ build_node_children(PyObject *tuple, node *root, int *line_num)
|
||||||
Py_Type(temp)->tp_name);
|
Py_Type(temp)->tp_name);
|
||||||
Py_DECREF(o);
|
Py_DECREF(o);
|
||||||
Py_DECREF(temp);
|
Py_DECREF(temp);
|
||||||
|
Py_DECREF(elem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Py_DECREF(o);
|
Py_DECREF(o);
|
||||||
|
@ -733,10 +735,12 @@ build_node_children(PyObject *tuple, node *root, int *line_num)
|
||||||
}
|
}
|
||||||
err = PyNode_AddChild(root, type, strn, *line_num, 0);
|
err = PyNode_AddChild(root, type, strn, *line_num, 0);
|
||||||
if (err == E_NOMEM) {
|
if (err == E_NOMEM) {
|
||||||
|
Py_XDECREF(elem);
|
||||||
PyObject_FREE(strn);
|
PyObject_FREE(strn);
|
||||||
return (node *) PyErr_NoMemory();
|
return (node *) PyErr_NoMemory();
|
||||||
}
|
}
|
||||||
if (err == E_OVERFLOW) {
|
if (err == E_OVERFLOW) {
|
||||||
|
Py_XDECREF(elem);
|
||||||
PyObject_FREE(strn);
|
PyObject_FREE(strn);
|
||||||
PyErr_SetString(PyExc_ValueError,
|
PyErr_SetString(PyExc_ValueError,
|
||||||
"unsupported number of child nodes");
|
"unsupported number of child nodes");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue