[Python-checkins] bpo-32365: Fix a reference leak when compile __debug__. (GH-4916) (#4918)

Serhiy Storchaka webhook-mailer at python.org
Mon Dec 18 08:11:58 EST 2017


https://github.com/python/cpython/commit/5659743b5693c9e23313a74117948294e35013f4
commit: 5659743b5693c9e23313a74117948294e35013f4
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Serhiy Storchaka <storchaka at gmail.com>
date: 2017-12-18T15:11:51+02:00
summary:

bpo-32365: Fix a reference leak when compile __debug__. (GH-4916) (#4918)

It was introduced in bpo-27169.
(cherry picked from commit bd6ec4d79e8575df3d08f8a89ba721930032714c)

files:
M Python/compile.c

diff --git a/Python/compile.c b/Python/compile.c
index 13b4fb83076..3b8f9bbd442 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -3032,10 +3032,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"));
@@ -3045,6 +3041,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);



More information about the Python-checkins mailing list