From: Serhiy Storchaka Date: Mon, 18 Dec 2017 12:29:12 +0000 (+0200) Subject: bpo-32365: Fix a reference leak when compile __debug__. (#4916) X-Git-Tag: v3.7.0a4~105 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bd6ec4d79e8575df3d08f8a89ba721930032714c;p=thirdparty%2FPython%2Fcpython.git bpo-32365: Fix a reference leak when compile __debug__. (#4916) It was introduced in bpo-27169. --- diff --git a/Python/compile.c b/Python/compile.c index 51c9a08162c8..392de40f20a8 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -3094,10 +3094,6 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) PyObject *mangled; /* XXX AugStore isn't used anywhere! */ - mangled = _Py_Mangle(c->u->u_private, name); - if (!mangled) - return 0; - assert(!_PyUnicode_EqualToASCIIString(name, "None") && !_PyUnicode_EqualToASCIIString(name, "True") && !_PyUnicode_EqualToASCIIString(name, "False")); @@ -3107,6 +3103,10 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx) return 1; } + mangled = _Py_Mangle(c->u->u_private, name); + if (!mangled) + return 0; + op = 0; optype = OP_NAME; scope = PyST_GetScope(c->u->u_ste, mangled);