Mercurial > cpython-lru_cache-weakref
diff Python/modsupport.c @ 24834:64f4dd770c67 legacy-trunk
Py_InitModule4(): Accept NULL for the 'methods' argument. This makes
sense now that extension types can support __init__ directly rather
than requiring function constructors.
| author | Fred Drake <fdrake@acm.org> |
|---|---|
| date | Wed, 14 Aug 2002 20:57:56 +0000 |
| parents | 81ca6ca5c307 |
| children | fe2d422385b1 |
line wrap: on
line diff
--- a/Python/modsupport.c Wed Aug 14 19:25:42 2002 +0000 +++ b/Python/modsupport.c Wed Aug 14 20:57:56 2002 +0000 @@ -56,22 +56,24 @@ if ((m = PyImport_AddModule(name)) == NULL) return NULL; d = PyModule_GetDict(m); - for (ml = methods; ml->ml_name != NULL; ml++) { - if ((ml->ml_flags & METH_CLASS) || - (ml->ml_flags & METH_STATIC)) { - PyErr_SetString(PyExc_ValueError, - "module functions cannot set" - " METH_CLASS or METH_STATIC"); - return NULL; + if (methods != NULL) { + for (ml = methods; ml->ml_name != NULL; ml++) { + if ((ml->ml_flags & METH_CLASS) || + (ml->ml_flags & METH_STATIC)) { + PyErr_SetString(PyExc_ValueError, + "module functions cannot set" + " METH_CLASS or METH_STATIC"); + return NULL; + } + v = PyCFunction_New(ml, passthrough); + if (v == NULL) + return NULL; + if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { + Py_DECREF(v); + return NULL; + } + Py_DECREF(v); } - v = PyCFunction_New(ml, passthrough); - if (v == NULL) - return NULL; - if (PyDict_SetItemString(d, ml->ml_name, v) != 0) { - Py_DECREF(v); - return NULL; - } - Py_DECREF(v); } if (doc != NULL) { v = PyString_FromString(doc);
