bpo-28411: Remove "modules" field from Py_InterpreterState. (#1638)

sys.modules is the one true source.
This commit is contained in:
Eric Snow 2017-09-04 17:54:09 -06:00 committed by GitHub
parent f5ea83f486
commit 86b7afdfee
18 changed files with 261 additions and 111 deletions

View file

@ -159,13 +159,11 @@ static PyObject *
sys_displayhook(PyObject *self, PyObject *o)
{
PyObject *outf;
PyInterpreterState *interp = PyThreadState_GET()->interp;
PyObject *modules = interp->modules;
PyObject *builtins;
static PyObject *newline = NULL;
int err;
builtins = _PyDict_GetItemId(modules, &PyId_builtins);
builtins = _PyImport_GetModuleId(&PyId_builtins);
if (builtins == NULL) {
PyErr_SetString(PyExc_RuntimeError, "lost builtins module");
return NULL;
@ -1929,7 +1927,7 @@ _PySys_BeginInit(void)
PyObject *m, *sysdict, *version_info;
int res;
m = PyModule_Create(&sysmodule);
m = _PyModule_CreateInitialized(&sysmodule, PYTHON_API_VERSION);
if (m == NULL)
return NULL;
sysdict = PyModule_GetDict(m);