summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew/3.9.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/whatsnew/3.9.rst')
-rw-r--r--Doc/whatsnew/3.9.rst11
1 files changed, 11 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 8c087c6..fd3d333 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -503,6 +503,17 @@ Build and C API Changes
*tstate* parameter (``PyThreadState*``).
(Contributed by Victor Stinner in :issue:`38500`.)
+* Extension modules: :c:member:`~PyModuleDef.m_traverse`,
+ :c:member:`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free`
+ functions of :c:type:`PyModuleDef` are no longer called if the module state
+ was requested but is not allocated yet. This is the case immediately after
+ the module is created and before the module is executed
+ (:c:data:`Py_mod_exec` function). More precisely, these functions are not called
+ if :c:member:`~PyModuleDef.m_size` is greater than 0 and the module state (as
+ returned by :c:func:`PyModule_GetState`) is ``NULL``.
+
+ Extension modules without module state (``m_size <= 0``) are not affected.
+
Deprecated
==========