changeset: 106205:2aad07b7f1ad tag: tip user: Victor Stinner date: Tue Jan 17 16:57:58 2017 +0100 files: Modules/_decimal/_decimal.c description: _decimal.Decimal.quantize() now uses METH_FASTCALL diff -r cc65f1db7ef4 -r 2aad07b7f1ad Modules/_decimal/_decimal.c --- a/Modules/_decimal/_decimal.c Tue Jan 17 16:57:43 2017 +0100 +++ b/Modules/_decimal/_decimal.c Tue Jan 17 16:57:58 2017 +0100 @@ -4335,9 +4335,10 @@ Dec_BinaryFuncVA(mpd_qscaleb) Dec_BinaryFuncVA(mpd_qshift) static PyObject * -dec_mpd_qquantize(PyObject *v, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"exp", "rounding", "context", NULL}; +dec_mpd_qquantize(PyObject *v, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) +{ + static const char * const kwlist[] = {"exp", "rounding", "context", NULL}; + static _PyArg_Parser parser = {"O|OO", kwlist, 0}; PyObject *rounding = Py_None; PyObject *context = Py_None; PyObject *w, *a, *b; @@ -4345,8 +4346,8 @@ dec_mpd_qquantize(PyObject *v, PyObject uint32_t status = 0; mpd_context_t workctx; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|OO", kwlist, - &w, &rounding, &context)) { + if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &parser, + &w, &rounding, &context)) { return NULL; } CONTEXT_CHECK_VA(context); @@ -4751,7 +4752,7 @@ static PyMethodDef dec_methods [] = { "min", (PyCFunction)dec_mpd_qmin, METH_VARARGS|METH_KEYWORDS, doc_min }, { "min_mag", (PyCFunction)dec_mpd_qmin_mag, METH_VARARGS|METH_KEYWORDS, doc_min_mag }, { "next_toward", (PyCFunction)dec_mpd_qnext_toward, METH_VARARGS|METH_KEYWORDS, doc_next_toward }, - { "quantize", (PyCFunction)dec_mpd_qquantize, METH_VARARGS|METH_KEYWORDS, doc_quantize }, + { "quantize", (PyCFunction)dec_mpd_qquantize, METH_FASTCALL, doc_quantize }, { "remainder_near", (PyCFunction)dec_mpd_qrem_near, METH_VARARGS|METH_KEYWORDS, doc_remainder_near }, /* Ternary arithmetic functions, optional context arg */