Skip to content

Commit

Permalink
next() uses FASTCALL
Browse files Browse the repository at this point in the history
  • Loading branch information
vstinner committed Jan 17, 2017
1 parent 84b388b commit fda6d0a
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions Python/bltinmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit fda6d0a

Please sign in to comment.