From 1bff883ac07b901c6199e0f79c3f93330ab24eae Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 13 Nov 2000 20:29:20 +0000 Subject: Allow new.function() called with explicit 3rd arg of None, as documented, and as is reasonable (since it is optional, but there's another argument following it that may require you to specify a value). This solves SF bug 121887. --- Modules/newmodule.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Modules/newmodule.c b/Modules/newmodule.c index 456e440..21b82ef 100644 --- a/Modules/newmodule.c +++ b/Modules/newmodule.c @@ -70,12 +70,17 @@ new_function(PyObject* unused, PyObject* args) PyObject* defaults = Py_None; PyFunctionObject* newfunc; - if (!PyArg_ParseTuple(args, "O!O!|SO!:function", + if (!PyArg_ParseTuple(args, "O!O!|OO!:function", &PyCode_Type, &code, &PyDict_Type, &globals, &name, &PyTuple_Type, &defaults)) return NULL; + if (name != Py_None && !PyString_Check(name)) { + PyErr_SetString(PyExc_TypeError, + "arg 3 (name) must be None or string"); + return NULL; + } newfunc = (PyFunctionObject *)PyFunction_New(code, globals); if (newfunc == NULL) -- cgit v0.12