summaryrefslogtreecommitdiffstats
path: root/Python/sysmodule.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2017-09-14 18:18:12 (GMT)
committerGitHub <noreply@github.com>2017-09-14 18:18:12 (GMT)
commitd393c1b227f22fb9af66040b2b367c99a4d1fa9a (patch)
tree2bb1bb4f8b59d3c6ffa8dabbc43dc30357e2b25f /Python/sysmodule.c
parent8dcf22f442320e4c1a5408e67b4c9002ad105f17 (diff)
downloadcpython-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.c7
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);