summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS.d/next/Library/2024-08-28-20-08-19.gh-issue-123448.tItJlp.rst2
-rw-r--r--Modules/_typingmodule.c3
-rw-r--r--Objects/object.c1
3 files changed, 3 insertions, 3 deletions
diff --git a/Misc/NEWS.d/next/Library/2024-08-28-20-08-19.gh-issue-123448.tItJlp.rst b/Misc/NEWS.d/next/Library/2024-08-28-20-08-19.gh-issue-123448.tItJlp.rst
new file mode 100644
index 0000000..a57c133
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-08-28-20-08-19.gh-issue-123448.tItJlp.rst
@@ -0,0 +1,2 @@
+Fixed memory leak of :class:`typing.NoDefault` by moving it to the static types
+array.
diff --git a/Modules/_typingmodule.c b/Modules/_typingmodule.c
index 37af00f..09fbb3c 100644
--- a/Modules/_typingmodule.c
+++ b/Modules/_typingmodule.c
@@ -63,9 +63,6 @@ _typing_exec(PyObject *m)
if (PyModule_AddObjectRef(m, "TypeAliasType", (PyObject *)&_PyTypeAlias_Type) < 0) {
return -1;
}
- if (PyType_Ready(&_PyNoDefault_Type) < 0) {
- return -1;
- }
if (PyModule_AddObjectRef(m, "NoDefault", (PyObject *)&_Py_NoDefaultStruct) < 0) {
return -1;
}
diff --git a/Objects/object.c b/Objects/object.c
index 9740322..4b8b6c2 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -2347,6 +2347,7 @@ static PyTypeObject* static_types[] = {
&_PyWeakref_ProxyType,
&_PyWeakref_RefType,
&_PyTypeAlias_Type,
+ &_PyNoDefault_Type,
// subclasses: _PyTypes_FiniTypes() deallocates them before their base
// class