From 7372e18fa83aa35766f8f6fdf3aed27fac2d52d2 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 17 Jan 2017 01:35:17 +0100 Subject: Run Argument Clinic: METH_VARARGS=>METH_FASTCALL Issue #29286. Run Argument Clinic to get the new faster METH_FASTCALL calling convention for functions using only positional arguments. --- Modules/clinic/audioop.c.h | 262 +++++++++++++++++++++++++++++++-------------- 1 file changed, 183 insertions(+), 79 deletions(-) (limited to 'Modules/clinic/audioop.c.h') diff --git a/Modules/clinic/audioop.c.h b/Modules/clinic/audioop.c.h index be4b718843..6ba1172e95 100644 --- a/Modules/clinic/audioop.c.h +++ b/Modules/clinic/audioop.c.h @@ -9,24 +9,28 @@ PyDoc_STRVAR(audioop_getsample__doc__, "Return the value of sample index from the fragment."); #define AUDIOOP_GETSAMPLE_METHODDEF \ - {"getsample", (PyCFunction)audioop_getsample, METH_VARARGS, audioop_getsample__doc__}, + {"getsample", (PyCFunction)audioop_getsample, METH_FASTCALL, audioop_getsample__doc__}, static PyObject * audioop_getsample_impl(PyObject *module, Py_buffer *fragment, int width, Py_ssize_t index); static PyObject * -audioop_getsample(PyObject *module, PyObject *args) +audioop_getsample(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; Py_ssize_t index; - if (!PyArg_ParseTuple(args, "y*in:getsample", + if (!_PyArg_ParseStack(args, nargs, "y*in:getsample", &fragment, &width, &index)) { goto exit; } + + if (!_PyArg_NoStackKeywords("getsample", kwnames)) { + goto exit; + } return_value = audioop_getsample_impl(module, &fragment, width, index); exit: @@ -45,22 +49,26 @@ PyDoc_STRVAR(audioop_max__doc__, "Return the maximum of the absolute value of all samples in a fragment."); #define AUDIOOP_MAX_METHODDEF \ - {"max", (PyCFunction)audioop_max, METH_VARARGS, audioop_max__doc__}, + {"max", (PyCFunction)audioop_max, METH_FASTCALL, audioop_max__doc__}, static PyObject * audioop_max_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_max(PyObject *module, PyObject *args) +audioop_max(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:max", + if (!_PyArg_ParseStack(args, nargs, "y*i:max", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("max", kwnames)) { + goto exit; + } return_value = audioop_max_impl(module, &fragment, width); exit: @@ -79,22 +87,26 @@ PyDoc_STRVAR(audioop_minmax__doc__, "Return the minimum and maximum values of all samples in the sound fragment."); #define AUDIOOP_MINMAX_METHODDEF \ - {"minmax", (PyCFunction)audioop_minmax, METH_VARARGS, audioop_minmax__doc__}, + {"minmax", (PyCFunction)audioop_minmax, METH_FASTCALL, audioop_minmax__doc__}, static PyObject * audioop_minmax_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_minmax(PyObject *module, PyObject *args) +audioop_minmax(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:minmax", + if (!_PyArg_ParseStack(args, nargs, "y*i:minmax", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("minmax", kwnames)) { + goto exit; + } return_value = audioop_minmax_impl(module, &fragment, width); exit: @@ -113,22 +125,26 @@ PyDoc_STRVAR(audioop_avg__doc__, "Return the average over all samples in the fragment."); #define AUDIOOP_AVG_METHODDEF \ - {"avg", (PyCFunction)audioop_avg, METH_VARARGS, audioop_avg__doc__}, + {"avg", (PyCFunction)audioop_avg, METH_FASTCALL, audioop_avg__doc__}, static PyObject * audioop_avg_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_avg(PyObject *module, PyObject *args) +audioop_avg(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:avg", + if (!_PyArg_ParseStack(args, nargs, "y*i:avg", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("avg", kwnames)) { + goto exit; + } return_value = audioop_avg_impl(module, &fragment, width); exit: @@ -147,22 +163,26 @@ PyDoc_STRVAR(audioop_rms__doc__, "Return the root-mean-square of the fragment, i.e. sqrt(sum(S_i^2)/n)."); #define AUDIOOP_RMS_METHODDEF \ - {"rms", (PyCFunction)audioop_rms, METH_VARARGS, audioop_rms__doc__}, + {"rms", (PyCFunction)audioop_rms, METH_FASTCALL, audioop_rms__doc__}, static PyObject * audioop_rms_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_rms(PyObject *module, PyObject *args) +audioop_rms(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:rms", + if (!_PyArg_ParseStack(args, nargs, "y*i:rms", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("rms", kwnames)) { + goto exit; + } return_value = audioop_rms_impl(module, &fragment, width); exit: @@ -181,23 +201,27 @@ PyDoc_STRVAR(audioop_findfit__doc__, "Try to match reference as well as possible to a portion of fragment."); #define AUDIOOP_FINDFIT_METHODDEF \ - {"findfit", (PyCFunction)audioop_findfit, METH_VARARGS, audioop_findfit__doc__}, + {"findfit", (PyCFunction)audioop_findfit, METH_FASTCALL, audioop_findfit__doc__}, static PyObject * audioop_findfit_impl(PyObject *module, Py_buffer *fragment, Py_buffer *reference); static PyObject * -audioop_findfit(PyObject *module, PyObject *args) +audioop_findfit(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; Py_buffer reference = {NULL, NULL}; - if (!PyArg_ParseTuple(args, "y*y*:findfit", + if (!_PyArg_ParseStack(args, nargs, "y*y*:findfit", &fragment, &reference)) { goto exit; } + + if (!_PyArg_NoStackKeywords("findfit", kwnames)) { + goto exit; + } return_value = audioop_findfit_impl(module, &fragment, &reference); exit: @@ -220,23 +244,27 @@ PyDoc_STRVAR(audioop_findfactor__doc__, "Return a factor F such that rms(add(fragment, mul(reference, -F))) is minimal."); #define AUDIOOP_FINDFACTOR_METHODDEF \ - {"findfactor", (PyCFunction)audioop_findfactor, METH_VARARGS, audioop_findfactor__doc__}, + {"findfactor", (PyCFunction)audioop_findfactor, METH_FASTCALL, audioop_findfactor__doc__}, static PyObject * audioop_findfactor_impl(PyObject *module, Py_buffer *fragment, Py_buffer *reference); static PyObject * -audioop_findfactor(PyObject *module, PyObject *args) +audioop_findfactor(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; Py_buffer reference = {NULL, NULL}; - if (!PyArg_ParseTuple(args, "y*y*:findfactor", + if (!_PyArg_ParseStack(args, nargs, "y*y*:findfactor", &fragment, &reference)) { goto exit; } + + if (!_PyArg_NoStackKeywords("findfactor", kwnames)) { + goto exit; + } return_value = audioop_findfactor_impl(module, &fragment, &reference); exit: @@ -259,23 +287,27 @@ PyDoc_STRVAR(audioop_findmax__doc__, "Search fragment for a slice of specified number of samples with maximum energy."); #define AUDIOOP_FINDMAX_METHODDEF \ - {"findmax", (PyCFunction)audioop_findmax, METH_VARARGS, audioop_findmax__doc__}, + {"findmax", (PyCFunction)audioop_findmax, METH_FASTCALL, audioop_findmax__doc__}, static PyObject * audioop_findmax_impl(PyObject *module, Py_buffer *fragment, Py_ssize_t length); static PyObject * -audioop_findmax(PyObject *module, PyObject *args) +audioop_findmax(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; Py_ssize_t length; - if (!PyArg_ParseTuple(args, "y*n:findmax", + if (!_PyArg_ParseStack(args, nargs, "y*n:findmax", &fragment, &length)) { goto exit; } + + if (!_PyArg_NoStackKeywords("findmax", kwnames)) { + goto exit; + } return_value = audioop_findmax_impl(module, &fragment, length); exit: @@ -294,22 +326,26 @@ PyDoc_STRVAR(audioop_avgpp__doc__, "Return the average peak-peak value over all samples in the fragment."); #define AUDIOOP_AVGPP_METHODDEF \ - {"avgpp", (PyCFunction)audioop_avgpp, METH_VARARGS, audioop_avgpp__doc__}, + {"avgpp", (PyCFunction)audioop_avgpp, METH_FASTCALL, audioop_avgpp__doc__}, static PyObject * audioop_avgpp_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_avgpp(PyObject *module, PyObject *args) +audioop_avgpp(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:avgpp", + if (!_PyArg_ParseStack(args, nargs, "y*i:avgpp", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("avgpp", kwnames)) { + goto exit; + } return_value = audioop_avgpp_impl(module, &fragment, width); exit: @@ -328,22 +364,26 @@ PyDoc_STRVAR(audioop_maxpp__doc__, "Return the maximum peak-peak value in the sound fragment."); #define AUDIOOP_MAXPP_METHODDEF \ - {"maxpp", (PyCFunction)audioop_maxpp, METH_VARARGS, audioop_maxpp__doc__}, + {"maxpp", (PyCFunction)audioop_maxpp, METH_FASTCALL, audioop_maxpp__doc__}, static PyObject * audioop_maxpp_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_maxpp(PyObject *module, PyObject *args) +audioop_maxpp(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:maxpp", + if (!_PyArg_ParseStack(args, nargs, "y*i:maxpp", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("maxpp", kwnames)) { + goto exit; + } return_value = audioop_maxpp_impl(module, &fragment, width); exit: @@ -362,22 +402,26 @@ PyDoc_STRVAR(audioop_cross__doc__, "Return the number of zero crossings in the fragment passed as an argument."); #define AUDIOOP_CROSS_METHODDEF \ - {"cross", (PyCFunction)audioop_cross, METH_VARARGS, audioop_cross__doc__}, + {"cross", (PyCFunction)audioop_cross, METH_FASTCALL, audioop_cross__doc__}, static PyObject * audioop_cross_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_cross(PyObject *module, PyObject *args) +audioop_cross(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:cross", + if (!_PyArg_ParseStack(args, nargs, "y*i:cross", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("cross", kwnames)) { + goto exit; + } return_value = audioop_cross_impl(module, &fragment, width); exit: @@ -396,24 +440,28 @@ PyDoc_STRVAR(audioop_mul__doc__, "Return a fragment that has all samples in the original fragment multiplied by the floating-point value factor."); #define AUDIOOP_MUL_METHODDEF \ - {"mul", (PyCFunction)audioop_mul, METH_VARARGS, audioop_mul__doc__}, + {"mul", (PyCFunction)audioop_mul, METH_FASTCALL, audioop_mul__doc__}, static PyObject * audioop_mul_impl(PyObject *module, Py_buffer *fragment, int width, double factor); static PyObject * -audioop_mul(PyObject *module, PyObject *args) +audioop_mul(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; double factor; - if (!PyArg_ParseTuple(args, "y*id:mul", + if (!_PyArg_ParseStack(args, nargs, "y*id:mul", &fragment, &width, &factor)) { goto exit; } + + if (!_PyArg_NoStackKeywords("mul", kwnames)) { + goto exit; + } return_value = audioop_mul_impl(module, &fragment, width, factor); exit: @@ -432,14 +480,14 @@ PyDoc_STRVAR(audioop_tomono__doc__, "Convert a stereo fragment to a mono fragment."); #define AUDIOOP_TOMONO_METHODDEF \ - {"tomono", (PyCFunction)audioop_tomono, METH_VARARGS, audioop_tomono__doc__}, + {"tomono", (PyCFunction)audioop_tomono, METH_FASTCALL, audioop_tomono__doc__}, static PyObject * audioop_tomono_impl(PyObject *module, Py_buffer *fragment, int width, double lfactor, double rfactor); static PyObject * -audioop_tomono(PyObject *module, PyObject *args) +audioop_tomono(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; @@ -447,10 +495,14 @@ audioop_tomono(PyObject *module, PyObject *args) double lfactor; double rfactor; - if (!PyArg_ParseTuple(args, "y*idd:tomono", + if (!_PyArg_ParseStack(args, nargs, "y*idd:tomono", &fragment, &width, &lfactor, &rfactor)) { goto exit; } + + if (!_PyArg_NoStackKeywords("tomono", kwnames)) { + goto exit; + } return_value = audioop_tomono_impl(module, &fragment, width, lfactor, rfactor); exit: @@ -469,14 +521,14 @@ PyDoc_STRVAR(audioop_tostereo__doc__, "Generate a stereo fragment from a mono fragment."); #define AUDIOOP_TOSTEREO_METHODDEF \ - {"tostereo", (PyCFunction)audioop_tostereo, METH_VARARGS, audioop_tostereo__doc__}, + {"tostereo", (PyCFunction)audioop_tostereo, METH_FASTCALL, audioop_tostereo__doc__}, static PyObject * audioop_tostereo_impl(PyObject *module, Py_buffer *fragment, int width, double lfactor, double rfactor); static PyObject * -audioop_tostereo(PyObject *module, PyObject *args) +audioop_tostereo(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; @@ -484,10 +536,14 @@ audioop_tostereo(PyObject *module, PyObject *args) double lfactor; double rfactor; - if (!PyArg_ParseTuple(args, "y*idd:tostereo", + if (!_PyArg_ParseStack(args, nargs, "y*idd:tostereo", &fragment, &width, &lfactor, &rfactor)) { goto exit; } + + if (!_PyArg_NoStackKeywords("tostereo", kwnames)) { + goto exit; + } return_value = audioop_tostereo_impl(module, &fragment, width, lfactor, rfactor); exit: @@ -506,24 +562,28 @@ PyDoc_STRVAR(audioop_add__doc__, "Return a fragment which is the addition of the two samples passed as parameters."); #define AUDIOOP_ADD_METHODDEF \ - {"add", (PyCFunction)audioop_add, METH_VARARGS, audioop_add__doc__}, + {"add", (PyCFunction)audioop_add, METH_FASTCALL, audioop_add__doc__}, static PyObject * audioop_add_impl(PyObject *module, Py_buffer *fragment1, Py_buffer *fragment2, int width); static PyObject * -audioop_add(PyObject *module, PyObject *args) +audioop_add(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment1 = {NULL, NULL}; Py_buffer fragment2 = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*y*i:add", + if (!_PyArg_ParseStack(args, nargs, "y*y*i:add", &fragment1, &fragment2, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("add", kwnames)) { + goto exit; + } return_value = audioop_add_impl(module, &fragment1, &fragment2, width); exit: @@ -546,23 +606,27 @@ PyDoc_STRVAR(audioop_bias__doc__, "Return a fragment that is the original fragment with a bias added to each sample."); #define AUDIOOP_BIAS_METHODDEF \ - {"bias", (PyCFunction)audioop_bias, METH_VARARGS, audioop_bias__doc__}, + {"bias", (PyCFunction)audioop_bias, METH_FASTCALL, audioop_bias__doc__}, static PyObject * audioop_bias_impl(PyObject *module, Py_buffer *fragment, int width, int bias); static PyObject * -audioop_bias(PyObject *module, PyObject *args) +audioop_bias(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; int bias; - if (!PyArg_ParseTuple(args, "y*ii:bias", + if (!_PyArg_ParseStack(args, nargs, "y*ii:bias", &fragment, &width, &bias)) { goto exit; } + + if (!_PyArg_NoStackKeywords("bias", kwnames)) { + goto exit; + } return_value = audioop_bias_impl(module, &fragment, width, bias); exit: @@ -581,22 +645,26 @@ PyDoc_STRVAR(audioop_reverse__doc__, "Reverse the samples in a fragment and returns the modified fragment."); #define AUDIOOP_REVERSE_METHODDEF \ - {"reverse", (PyCFunction)audioop_reverse, METH_VARARGS, audioop_reverse__doc__}, + {"reverse", (PyCFunction)audioop_reverse, METH_FASTCALL, audioop_reverse__doc__}, static PyObject * audioop_reverse_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_reverse(PyObject *module, PyObject *args) +audioop_reverse(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:reverse", + if (!_PyArg_ParseStack(args, nargs, "y*i:reverse", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("reverse", kwnames)) { + goto exit; + } return_value = audioop_reverse_impl(module, &fragment, width); exit: @@ -615,22 +683,26 @@ PyDoc_STRVAR(audioop_byteswap__doc__, "Convert big-endian samples to little-endian and vice versa."); #define AUDIOOP_BYTESWAP_METHODDEF \ - {"byteswap", (PyCFunction)audioop_byteswap, METH_VARARGS, audioop_byteswap__doc__}, + {"byteswap", (PyCFunction)audioop_byteswap, METH_FASTCALL, audioop_byteswap__doc__}, static PyObject * audioop_byteswap_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_byteswap(PyObject *module, PyObject *args) +audioop_byteswap(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:byteswap", + if (!_PyArg_ParseStack(args, nargs, "y*i:byteswap", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("byteswap", kwnames)) { + goto exit; + } return_value = audioop_byteswap_impl(module, &fragment, width); exit: @@ -649,24 +721,28 @@ PyDoc_STRVAR(audioop_lin2lin__doc__, "Convert samples between 1-, 2-, 3- and 4-byte formats."); #define AUDIOOP_LIN2LIN_METHODDEF \ - {"lin2lin", (PyCFunction)audioop_lin2lin, METH_VARARGS, audioop_lin2lin__doc__}, + {"lin2lin", (PyCFunction)audioop_lin2lin, METH_FASTCALL, audioop_lin2lin__doc__}, static PyObject * audioop_lin2lin_impl(PyObject *module, Py_buffer *fragment, int width, int newwidth); static PyObject * -audioop_lin2lin(PyObject *module, PyObject *args) +audioop_lin2lin(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; int newwidth; - if (!PyArg_ParseTuple(args, "y*ii:lin2lin", + if (!_PyArg_ParseStack(args, nargs, "y*ii:lin2lin", &fragment, &width, &newwidth)) { goto exit; } + + if (!_PyArg_NoStackKeywords("lin2lin", kwnames)) { + goto exit; + } return_value = audioop_lin2lin_impl(module, &fragment, width, newwidth); exit: @@ -686,7 +762,7 @@ PyDoc_STRVAR(audioop_ratecv__doc__, "Convert the frame rate of the input fragment."); #define AUDIOOP_RATECV_METHODDEF \ - {"ratecv", (PyCFunction)audioop_ratecv, METH_VARARGS, audioop_ratecv__doc__}, + {"ratecv", (PyCFunction)audioop_ratecv, METH_FASTCALL, audioop_ratecv__doc__}, static PyObject * audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width, @@ -694,7 +770,7 @@ audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width, int weightA, int weightB); static PyObject * -audioop_ratecv(PyObject *module, PyObject *args) +audioop_ratecv(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; @@ -706,10 +782,14 @@ audioop_ratecv(PyObject *module, PyObject *args) int weightA = 1; int weightB = 0; - if (!PyArg_ParseTuple(args, "y*iiiiO|ii:ratecv", + if (!_PyArg_ParseStack(args, nargs, "y*iiiiO|ii:ratecv", &fragment, &width, &nchannels, &inrate, &outrate, &state, &weightA, &weightB)) { goto exit; } + + if (!_PyArg_NoStackKeywords("ratecv", kwnames)) { + goto exit; + } return_value = audioop_ratecv_impl(module, &fragment, width, nchannels, inrate, outrate, state, weightA, weightB); exit: @@ -728,22 +808,26 @@ PyDoc_STRVAR(audioop_lin2ulaw__doc__, "Convert samples in the audio fragment to u-LAW encoding."); #define AUDIOOP_LIN2ULAW_METHODDEF \ - {"lin2ulaw", (PyCFunction)audioop_lin2ulaw, METH_VARARGS, audioop_lin2ulaw__doc__}, + {"lin2ulaw", (PyCFunction)audioop_lin2ulaw, METH_FASTCALL, audioop_lin2ulaw__doc__}, static PyObject * audioop_lin2ulaw_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_lin2ulaw(PyObject *module, PyObject *args) +audioop_lin2ulaw(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:lin2ulaw", + if (!_PyArg_ParseStack(args, nargs, "y*i:lin2ulaw", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("lin2ulaw", kwnames)) { + goto exit; + } return_value = audioop_lin2ulaw_impl(module, &fragment, width); exit: @@ -762,22 +846,26 @@ PyDoc_STRVAR(audioop_ulaw2lin__doc__, "Convert sound fragments in u-LAW encoding to linearly encoded sound fragments."); #define AUDIOOP_ULAW2LIN_METHODDEF \ - {"ulaw2lin", (PyCFunction)audioop_ulaw2lin, METH_VARARGS, audioop_ulaw2lin__doc__}, + {"ulaw2lin", (PyCFunction)audioop_ulaw2lin, METH_FASTCALL, audioop_ulaw2lin__doc__}, static PyObject * audioop_ulaw2lin_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_ulaw2lin(PyObject *module, PyObject *args) +audioop_ulaw2lin(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:ulaw2lin", + if (!_PyArg_ParseStack(args, nargs, "y*i:ulaw2lin", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("ulaw2lin", kwnames)) { + goto exit; + } return_value = audioop_ulaw2lin_impl(module, &fragment, width); exit: @@ -796,22 +884,26 @@ PyDoc_STRVAR(audioop_lin2alaw__doc__, "Convert samples in the audio fragment to a-LAW encoding."); #define AUDIOOP_LIN2ALAW_METHODDEF \ - {"lin2alaw", (PyCFunction)audioop_lin2alaw, METH_VARARGS, audioop_lin2alaw__doc__}, + {"lin2alaw", (PyCFunction)audioop_lin2alaw, METH_FASTCALL, audioop_lin2alaw__doc__}, static PyObject * audioop_lin2alaw_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_lin2alaw(PyObject *module, PyObject *args) +audioop_lin2alaw(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:lin2alaw", + if (!_PyArg_ParseStack(args, nargs, "y*i:lin2alaw", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("lin2alaw", kwnames)) { + goto exit; + } return_value = audioop_lin2alaw_impl(module, &fragment, width); exit: @@ -830,22 +922,26 @@ PyDoc_STRVAR(audioop_alaw2lin__doc__, "Convert sound fragments in a-LAW encoding to linearly encoded sound fragments."); #define AUDIOOP_ALAW2LIN_METHODDEF \ - {"alaw2lin", (PyCFunction)audioop_alaw2lin, METH_VARARGS, audioop_alaw2lin__doc__}, + {"alaw2lin", (PyCFunction)audioop_alaw2lin, METH_FASTCALL, audioop_alaw2lin__doc__}, static PyObject * audioop_alaw2lin_impl(PyObject *module, Py_buffer *fragment, int width); static PyObject * -audioop_alaw2lin(PyObject *module, PyObject *args) +audioop_alaw2lin(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; - if (!PyArg_ParseTuple(args, "y*i:alaw2lin", + if (!_PyArg_ParseStack(args, nargs, "y*i:alaw2lin", &fragment, &width)) { goto exit; } + + if (!_PyArg_NoStackKeywords("alaw2lin", kwnames)) { + goto exit; + } return_value = audioop_alaw2lin_impl(module, &fragment, width); exit: @@ -864,24 +960,28 @@ PyDoc_STRVAR(audioop_lin2adpcm__doc__, "Convert samples to 4 bit Intel/DVI ADPCM encoding."); #define AUDIOOP_LIN2ADPCM_METHODDEF \ - {"lin2adpcm", (PyCFunction)audioop_lin2adpcm, METH_VARARGS, audioop_lin2adpcm__doc__}, + {"lin2adpcm", (PyCFunction)audioop_lin2adpcm, METH_FASTCALL, audioop_lin2adpcm__doc__}, static PyObject * audioop_lin2adpcm_impl(PyObject *module, Py_buffer *fragment, int width, PyObject *state); static PyObject * -audioop_lin2adpcm(PyObject *module, PyObject *args) +audioop_lin2adpcm(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; PyObject *state; - if (!PyArg_ParseTuple(args, "y*iO:lin2adpcm", + if (!_PyArg_ParseStack(args, nargs, "y*iO:lin2adpcm", &fragment, &width, &state)) { goto exit; } + + if (!_PyArg_NoStackKeywords("lin2adpcm", kwnames)) { + goto exit; + } return_value = audioop_lin2adpcm_impl(module, &fragment, width, state); exit: @@ -900,24 +1000,28 @@ PyDoc_STRVAR(audioop_adpcm2lin__doc__, "Decode an Intel/DVI ADPCM coded fragment to a linear fragment."); #define AUDIOOP_ADPCM2LIN_METHODDEF \ - {"adpcm2lin", (PyCFunction)audioop_adpcm2lin, METH_VARARGS, audioop_adpcm2lin__doc__}, + {"adpcm2lin", (PyCFunction)audioop_adpcm2lin, METH_FASTCALL, audioop_adpcm2lin__doc__}, static PyObject * audioop_adpcm2lin_impl(PyObject *module, Py_buffer *fragment, int width, PyObject *state); static PyObject * -audioop_adpcm2lin(PyObject *module, PyObject *args) +audioop_adpcm2lin(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; Py_buffer fragment = {NULL, NULL}; int width; PyObject *state; - if (!PyArg_ParseTuple(args, "y*iO:adpcm2lin", + if (!_PyArg_ParseStack(args, nargs, "y*iO:adpcm2lin", &fragment, &width, &state)) { goto exit; } + + if (!_PyArg_NoStackKeywords("adpcm2lin", kwnames)) { + goto exit; + } return_value = audioop_adpcm2lin_impl(module, &fragment, width, state); exit: @@ -928,4 +1032,4 @@ exit: return return_value; } -/*[clinic end generated code: output=e0ab74c3fa57c39c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ee7c63ec28a11b78 input=a9049054013a1b77]*/ -- cgit v1.2.1