Mercurial > cpython-lru_cache-weakref
comparison Python/pythonrun.c @ 43848:e162e881ea5f
Moved the initalization of the exception before the initialization of sys.
On Windows _PySys_Init() could raise an uninitialized exception which leads to a seg fault.
| author | Christian Heimes <christian@cheimes.de> |
|---|---|
| date | Wed, 14 Nov 2007 00:16:07 +0000 |
| parents | 241281123fd8 |
| children | ee081609cee8 |
comparison
equal
deleted
inserted
replaced
| 43847:0377ba9bc359 | 43848:e162e881ea5f |
|---|---|
| 215 interp->builtins = PyModule_GetDict(bimod); | 215 interp->builtins = PyModule_GetDict(bimod); |
| 216 if (interp->builtins == NULL) | 216 if (interp->builtins == NULL) |
| 217 Py_FatalError("Py_Initialize: can't initialize builtins dict"); | 217 Py_FatalError("Py_Initialize: can't initialize builtins dict"); |
| 218 Py_INCREF(interp->builtins); | 218 Py_INCREF(interp->builtins); |
| 219 | 219 |
| 220 /* initialize builtin exceptions */ | |
| 221 _PyExc_Init(); | |
| 222 | |
| 220 sysmod = _PySys_Init(); | 223 sysmod = _PySys_Init(); |
| 221 if (sysmod == NULL) | 224 if (sysmod == NULL) |
| 222 Py_FatalError("Py_Initialize: can't initialize sys"); | 225 Py_FatalError("Py_Initialize: can't initialize sys"); |
| 223 interp->sysdict = PyModule_GetDict(sysmod); | 226 interp->sysdict = PyModule_GetDict(sysmod); |
| 224 if (interp->sysdict == NULL) | 227 if (interp->sysdict == NULL) |
| 236 Py_FatalError("Py_Initialize: can't set preliminary stderr"); | 239 Py_FatalError("Py_Initialize: can't set preliminary stderr"); |
| 237 PySys_SetObject("stderr", pstderr); | 240 PySys_SetObject("stderr", pstderr); |
| 238 PySys_SetObject("__stderr__", pstderr); | 241 PySys_SetObject("__stderr__", pstderr); |
| 239 | 242 |
| 240 _PyImport_Init(); | 243 _PyImport_Init(); |
| 241 | |
| 242 /* initialize builtin exceptions */ | |
| 243 _PyExc_Init(); | |
| 244 | 244 |
| 245 /* phase 2 of builtins */ | 245 /* phase 2 of builtins */ |
| 246 _PyImport_FixupExtension("__builtin__", "__builtin__"); | 246 _PyImport_FixupExtension("__builtin__", "__builtin__"); |
| 247 | 247 |
| 248 _PyImportHooks_Init(); | 248 _PyImportHooks_Init(); |
