]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.9] bpo-41194: The _ast module cannot be loaded more than once (GH-21290) (GH-21292)
authorVictor Stinner <vstinner@python.org>
Fri, 3 Jul 2020 14:57:19 +0000 (16:57 +0200)
committerGitHub <noreply@github.com>
Fri, 3 Jul 2020 14:57:19 +0000 (16:57 +0200)
commitf8599279b6ac8c44538b608fd08c13ccf674f497
tree463d4e7c9959f46494cd69c90ee5be524e0e8b5a
parent486c256bdf158fb23063c458f4c8201395cc89bc
[3.9] bpo-41194: The _ast module cannot be loaded more than once (GH-21290) (GH-21292)

* bpo-41194: Pass module state in Python-ast.c (GH-21284)

Rework asdl_c.py to pass the module state to functions in
Python-ast.c, instead of using astmodulestate_global.

Handle also PyState_AddModule() failure in init_types().

(cherry picked from commit 74419f0c64959bb8392fcf3659058410423038e1)

* bpo-41194: The _ast module cannot be loaded more than once (GH-21290)

Fix a crash in the _ast module: it can no longer be loaded more than
once. It now uses a global state rather than a module state.

* Move _ast module state: use a global state instead.
* Set _astmodule.m_size to -1, so the extension cannot be loaded more
  than once.

(cherry picked from commit 91e1bc18bd467a13bceb62e16fbc435b33381c82)
Misc/NEWS.d/next/Library/2020-07-03-13-15-08.bpo-41194.djrKjs.rst [new file with mode: 0644]
Parser/asdl_c.py
Python/Python-ast.c