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;