From: Victor Stinner Date: Wed, 6 Nov 2013 21:40:41 +0000 (+0100) Subject: Issue #19512: pickle now uses an identifier to only create the Unicode string X-Git-Tag: v3.4.0b1~365 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bb52020d44b6f3f1ebd16ec6ce38f1f8a6330728;p=python 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 a14a258fec..75b0441f93 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -136,6 +136,8 @@ static PyObject *empty_tuple = NULL; /* 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 @@ whichmodule(PyObject *global, PyObject *global_name) 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 @@ Unpickler_find_class(UnpicklerObject *self, PyObject *args) } } - 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;