From: Victor Stinner Date: Tue, 17 Jan 2017 03:09:14 +0000 (+0100) Subject: next() uses FASTCALL X-Git-Tag: v3.7.0a1~1529 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fda6d0acf0cb8e683640e6a3a404a371cb68b145;p=python next() uses FASTCALL --- diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index b269937684..9487a5364a 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -1303,13 +1303,19 @@ PyTypeObject PyMap_Type = { /* AC: cannot convert yet, as needs PEP 457 group support in inspect */ static PyObject * -builtin_next(PyObject *self, PyObject *args) +builtin_next(PyObject *self, PyObject **args, Py_ssize_t nargs, + PyObject *kwnames) { PyObject *it, *res; PyObject *def = NULL; - if (!PyArg_UnpackTuple(args, "next", 1, 2, &it, &def)) + if (!_PyArg_UnpackStack(args, nargs, "next", 1, 2, &it, &def)) return NULL; + + if (!_PyArg_NoStackKeywords("next", kwnames)) { + return NULL; + } + if (!PyIter_Check(it)) { PyErr_Format(PyExc_TypeError, "'%.200s' object is not an iterator", @@ -2641,7 +2647,7 @@ static PyMethodDef builtin_methods[] = { BUILTIN_LOCALS_METHODDEF {"max", (PyCFunction)builtin_max, METH_VARARGS | METH_KEYWORDS, max_doc}, {"min", (PyCFunction)builtin_min, METH_VARARGS | METH_KEYWORDS, min_doc}, - {"next", (PyCFunction)builtin_next, METH_VARARGS, next_doc}, + {"next", (PyCFunction)builtin_next, METH_FASTCALL, next_doc}, BUILTIN_OCT_METHODDEF BUILTIN_ORD_METHODDEF BUILTIN_POW_METHODDEF