]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
PyModule_AddObject(): Added missing exceptions.
authorFred Drake <fdrake@acm.org>
Mon, 17 Jun 2002 17:16:57 +0000 (17:16 +0000)
committerFred Drake <fdrake@acm.org>
Mon, 17 Jun 2002 17:16:57 +0000 (17:16 +0000)
Closes SF bug #523473.

Python/modsupport.c

index f29b27cd229de644bad841c10b2d78153aaa2899..f4f82982afcbc544787a3569699549d4b0b74b0c 100644 (file)
@@ -488,15 +488,22 @@ int
 PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 {
        PyObject *dict;
-        if (!PyModule_Check(m) || o == NULL)
-                return -1;
+       if (!PyModule_Check(m) || o == NULL) {
+               PyErr_SetString(PyExc_TypeError,
+                           "PyModule_AddObject() needs module as first arg");
+               return -1;
+       }
        dict = PyModule_GetDict(m);
-       if (dict == NULL)
+       if (dict == NULL) {
+               /* Internal error -- modules must have a dict! */
+               PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
+                            PyModule_GetName(m));
+               return -1;
+       }
+       if (PyDict_SetItemString(dict, name, o))
                return -1;
-        if (PyDict_SetItemString(dict, name, o))
-                return -1;
-        Py_DECREF(o);
-        return 0;
+       Py_DECREF(o);
+       return 0;
 }
 
 int