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 }