Issue #26182: Fix ia refleak in code that raises DeprecationWarning.

This commit is contained in:
Yury Selivanov 2016-11-08 16:54:18 -05:00
parent 4678b2f448
commit 1a9d687a49
2 changed files with 7 additions and 3 deletions

View File

@ -18,6 +18,8 @@ Core and Builtins
should result in PendingDeprecationWarning in 3.5 and in should result in PendingDeprecationWarning in 3.5 and in
DeprecationWarning in 3.6. DeprecationWarning in 3.6.
- Issue #26182: Fix ia refleak in code that raises DeprecationWarning.
Library Library
------- -------

View File

@ -944,17 +944,19 @@ forbidden_name(struct compiling *c, identifier name, const node *n,
PyObject *message = PyUnicode_FromString( PyObject *message = PyUnicode_FromString(
"'async' and 'await' will become reserved keywords" "'async' and 'await' will become reserved keywords"
" in Python 3.7"); " in Python 3.7");
int ret;
if (message == NULL) { if (message == NULL) {
return 1; return 1;
} }
if (PyErr_WarnExplicitObject( ret = PyErr_WarnExplicitObject(
PyExc_DeprecationWarning, PyExc_DeprecationWarning,
message, message,
c->c_filename, c->c_filename,
LINENO(n), LINENO(n),
NULL, NULL,
NULL) < 0) NULL);
{ Py_DECREF(message);
if (ret < 0) {
return 1; return 1;
} }
} }