whichmodule(): remove redundant PyErr_Clear(); add explicit setting
of error when sys.modules isn't there.
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 9af979b..9f426cc 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -682,12 +682,11 @@
Py_INCREF(module);
return module;
}
- else {
- PyErr_Clear();
- }
- UNLESS(modules_dict = PySys_GetObject("modules"))
+ UNLESS(modules_dict = PySys_GetObject("modules")) {
+ PyErr_SetString(PyExc_SystemError, "lost sys.modules");
return NULL;
+ }
i = 0;
while ((j = PyDict_Next(modules_dict, &i, &name, &module))) {