PyModule_AddObject(): Added missing exceptions.

Closes SF bug #523473.
This commit is contained in:
Fred Drake 2002-06-17 17:16:57 +00:00
parent b084017c7a
commit 8311518a58

View file

@ -488,15 +488,22 @@ int
PyModule_AddObject(PyObject *m, char *name, PyObject *o) PyModule_AddObject(PyObject *m, char *name, PyObject *o)
{ {
PyObject *dict; PyObject *dict;
if (!PyModule_Check(m) || o == NULL) if (!PyModule_Check(m) || o == NULL) {
return -1; PyErr_SetString(PyExc_TypeError,
dict = PyModule_GetDict(m); "PyModule_AddObject() needs module as first arg");
if (dict == NULL)
return -1; return -1;
if (PyDict_SetItemString(dict, name, o)) }
return -1; dict = PyModule_GetDict(m);
Py_DECREF(o); if (dict == NULL) {
return 0; /* 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;
Py_DECREF(o);
return 0;
} }
int int