diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2017-09-14 18:18:12 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-14 18:18:12 (GMT) |
commit | d393c1b227f22fb9af66040b2b367c99a4d1fa9a (patch) | |
tree | 2bb1bb4f8b59d3c6ffa8dabbc43dc30357e2b25f /Python/sysmodule.c | |
parent | 8dcf22f442320e4c1a5408e67b4c9002ad105f17 (diff) | |
download | cpython-d393c1b227f22fb9af66040b2b367c99a4d1fa9a.zip cpython-d393c1b227f22fb9af66040b2b367c99a4d1fa9a.tar.gz cpython-d393c1b227f22fb9af66040b2b367c99a4d1fa9a.tar.bz2 |
bpo-28411: Isolate PyInterpreterState.modules (#3575)
A bunch of code currently uses PyInterpreterState.modules directly instead of PyImport_GetModuleDict(). This complicates efforts to make changes relative to sys.modules. This patch switches to using PyImport_GetModuleDict() uniformly. Also, a number of related uses of sys.modules are updated for uniformity for the same reason.
Note that this code was already reviewed and merged as part of #1638. I reverted that and am now splitting it up into more focused parts.
Diffstat (limited to 'Python/sysmodule.c')
-rw-r--r-- | Python/sysmodule.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 9e13d49..d463683 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -162,8 +162,9 @@ static PyObject * sys_displayhook(PyObject *self, PyObject *o) { PyObject *outf; - PyInterpreterState *interp = PyThreadState_GET()->interp; - PyObject *modules = interp->modules; + PyObject *modules = PyImport_GetModuleDict(); + if (modules == NULL) + return NULL; PyObject *builtins; static PyObject *newline = NULL; int err; @@ -1949,7 +1950,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); |