summaryrefslogtreecommitdiff
path: root/Modules/errnomodule.c
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2000-09-01 09:01:32 +0000
committerBarry Warsaw <barry@python.org>2000-09-01 09:01:32 +0000
commit1ec2aff0db81fd7814b47b0e68a8cfff24577000 (patch)
tree3cbba525f273630d4cc179e87ed2a25bcea59648 /Modules/errnomodule.c
parent591e65c2ec1c98d14f1fbb677a07c24ad0c48850 (diff)
downloadcpython-1ec2aff0db81fd7814b47b0e68a8cfff24577000.tar.gz
Do the absolute minimal amount of modifications to eradicate
Py_FatalError() from module initialization functions. The importing mechanism already checks for PyErr_Occurred() after module importation and it Does The Right Thing. Unfortunately, the following either were not compiled or tested by the regression suite, due to issues with my development platform: almodule.c cdmodule.c mpzmodule.c puremodule.c timingmodule.c
Diffstat (limited to 'Modules/errnomodule.c')
-rw-r--r--Modules/errnomodule.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index 8607ea2565..b47feb6281 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -35,17 +35,14 @@ static PyMethodDef errno_methods[] = {
static void
_inscode(PyObject *d, PyObject *de, char *name, int code)
{
- PyObject *u;
- PyObject *v;
+ PyObject *u = PyString_FromString(name);
+ PyObject *v = PyInt_FromLong((long) code);
- u = PyString_FromString(name);
- v = PyInt_FromLong((long) code);
-
- if (!u || !v) {
- /* Don't bother reporting this error */
- PyErr_Clear();
- }
- else {
+ /* Don't bother checking for errors; they'll be caught at the end
+ * of the module initialization function by the caller of
+ * initerrno().
+ */
+ if (u && v) {
/* insert in modules dict */
PyDict_SetItem(d, u, v);
/* insert in errorcode dict */
@@ -76,8 +73,8 @@ initerrno(void)
m = Py_InitModule3("errno", errno_methods, errno__doc__);
d = PyModule_GetDict(m);
de = PyDict_New();
- if (de == NULL || PyDict_SetItemString(d, "errorcode", de))
- Py_FatalError("can't initialize errno module");
+ if (!d || !de || PyDict_SetItemString(d, "errorcode", de) < 0)
+ return;
/* Macro so I don't have to edit each and every line below... */
#define inscode(d, ds, de, name, code, comment) _inscode(d, de, name, code)