Mercurial > cpython-lru_cache-weakref
comparison Python/errors.c @ 40547:45c73152b4ac legacy-trunk
Prevent crash on shutdown which can occur if we are finalizing
and the module dict has been cleared already and some object
raises a warning (like in a __del__).
Will backport.
| author | Neal Norwitz <nnorwitz@gmail.com> |
|---|---|
| date | Fri, 05 Jan 2007 05:25:22 +0000 |
| parents | 6ba402b60041 |
| children | 2ce229a7ba3f f3f0c697aa5b |
comparison
equal
deleted
inserted
replaced
| 40545:69fe683ece56 | 40547:45c73152b4ac |
|---|---|
| 638 PyObject *dict, *func = NULL; | 638 PyObject *dict, *func = NULL; |
| 639 PyObject *warnings_module = PyModule_GetWarningsModule(); | 639 PyObject *warnings_module = PyModule_GetWarningsModule(); |
| 640 | 640 |
| 641 if (warnings_module != NULL) { | 641 if (warnings_module != NULL) { |
| 642 dict = PyModule_GetDict(warnings_module); | 642 dict = PyModule_GetDict(warnings_module); |
| 643 func = PyDict_GetItemString(dict, "warn"); | 643 if (dict != NULL) |
| 644 func = PyDict_GetItemString(dict, "warn"); | |
| 644 } | 645 } |
| 645 if (func == NULL) { | 646 if (func == NULL) { |
| 646 PySys_WriteStderr("warning: %s\n", message); | 647 PySys_WriteStderr("warning: %s\n", message); |
| 647 return 0; | 648 return 0; |
| 648 } | 649 } |
