Issue #19512: pickle now uses an identifier to only create the Unicode string
"modules" once
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index a14a258..75b0441 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -136,6 +136,8 @@
/* For looking up name pairs in copyreg._extension_registry. */
static PyObject *two_tuple = NULL;
+_Py_IDENTIFIER(modules);
+
static int
stack_underflow(void)
{
@@ -1363,7 +1365,7 @@
return NULL;
search:
- modules_dict = PySys_GetObject("modules");
+ modules_dict = _PySys_GetObjectId(&PyId_modules);
if (modules_dict == NULL) {
PyErr_SetString(PyExc_RuntimeError, "unable to get sys.modules");
return NULL;
@@ -5548,7 +5550,7 @@
}
}
- modules_dict = PySys_GetObject("modules");
+ modules_dict = _PySys_GetObjectId(&PyId_modules);
if (modules_dict == NULL) {
PyErr_SetString(PyExc_RuntimeError, "unable to get sys.modules");
return NULL;