diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2017-12-03 01:12:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-03 01:12:20 (GMT) |
commit | 078f1814f1a4413a2a0fdb8cf4490ee0fc98ef34 (patch) | |
tree | 204192eaa105d79d354dbede16b5474dc9cdc4ee /Python/compile.c | |
parent | 7324b5ce8e7c031a0a3832a6a8d7c639111ae0ff (diff) | |
download | cpython-078f1814f1a4413a2a0fdb8cf4490ee0fc98ef34.zip cpython-078f1814f1a4413a2a0fdb8cf4490ee0fc98ef34.tar.gz cpython-078f1814f1a4413a2a0fdb8cf4490ee0fc98ef34.tar.bz2 |
bpo-32176: Set CO_NOFREE in the code object constructor (GH-4675)
Previously, CO_NOFREE was set in the compiler, which meant
it could end up being set incorrectly when code objects
were created directly. Setting it in the constructor based
on freevars and cellvars ensures it is always accurate,
regardless of how the code object is defined.
Diffstat (limited to 'Python/compile.c')
-rw-r--r-- | Python/compile.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/Python/compile.c b/Python/compile.c index a3ea60d..a3fcd53 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -5273,11 +5273,6 @@ compute_code_flags(struct compiler *c) /* (Only) inherit compilerflags in PyCF_MASK */ flags |= (c->c_flags->cf_flags & PyCF_MASK); - if (!PyDict_GET_SIZE(c->u->u_freevars) && - !PyDict_GET_SIZE(c->u->u_cellvars)) { - flags |= CO_NOFREE; - } - return flags; } |