@@ -1612,12 +1612,14 @@ test_Py_ssize_t_converter
16121612 a: Py_ssize_t = 12
16131613 b: Py_ssize_t(accept={int}) = 34
16141614 c: Py_ssize_t(accept={int, NoneType}) = 56
1615+ d: Py_ssize_t(accept={int}, allow_negative=False) = 78
1616+ e: Py_ssize_t(accept={int, NoneType}, allow_negative=False) = 90
16151617 /
16161618
16171619[clinic start generated code]*/
16181620
16191621PyDoc_STRVAR (test_Py_ssize_t_converter__doc__ ,
1620- "test_Py_ssize_t_converter($module, a=12, b=34, c=56, /)\n"
1622+ "test_Py_ssize_t_converter($module, a=12, b=34, c=56, d=78, e=90, /)\n"
16211623"--\n"
16221624"\n" );
16231625
@@ -1626,7 +1628,7 @@ PyDoc_STRVAR(test_Py_ssize_t_converter__doc__,
16261628
16271629static PyObject *
16281630test_Py_ssize_t_converter_impl (PyObject * module , Py_ssize_t a , Py_ssize_t b ,
1629- Py_ssize_t c );
1631+ Py_ssize_t c , Py_ssize_t d , Py_ssize_t e );
16301632
16311633static PyObject *
16321634test_Py_ssize_t_converter (PyObject * module , PyObject * const * args , Py_ssize_t nargs )
@@ -1635,8 +1637,10 @@ test_Py_ssize_t_converter(PyObject *module, PyObject *const *args, Py_ssize_t na
16351637 Py_ssize_t a = 12 ;
16361638 Py_ssize_t b = 34 ;
16371639 Py_ssize_t c = 56 ;
1640+ Py_ssize_t d = 78 ;
1641+ Py_ssize_t e = 90 ;
16381642
1639- if (!_PyArg_CheckPositional ("test_Py_ssize_t_converter" , nargs , 0 , 3 )) {
1643+ if (!_PyArg_CheckPositional ("test_Py_ssize_t_converter" , nargs , 0 , 5 )) {
16401644 goto exit ;
16411645 }
16421646 if (nargs < 1 ) {
@@ -1675,17 +1679,43 @@ test_Py_ssize_t_converter(PyObject *module, PyObject *const *args, Py_ssize_t na
16751679 if (!_Py_convert_optional_to_ssize_t (args [2 ], & c )) {
16761680 goto exit ;
16771681 }
1682+ if (nargs < 4 ) {
1683+ goto skip_optional ;
1684+ }
1685+ {
1686+ Py_ssize_t ival = -1 ;
1687+ PyObject * iobj = _PyNumber_Index (args [3 ]);
1688+ if (iobj != NULL ) {
1689+ ival = PyLong_AsSsize_t (iobj );
1690+ Py_DECREF (iobj );
1691+ }
1692+ if (ival == -1 && PyErr_Occurred ()) {
1693+ goto exit ;
1694+ }
1695+ d = ival ;
1696+ if (d < 0 ) {
1697+ PyErr_SetString (PyExc_ValueError ,
1698+ "argument 4 must be not negative" );
1699+ goto exit ;
1700+ }
1701+ }
1702+ if (nargs < 5 ) {
1703+ goto skip_optional ;
1704+ }
1705+ if (!_Py_convert_optional_to_non_negative_ssize_t (args [4 ], & e )) {
1706+ goto exit ;
1707+ }
16781708skip_optional :
1679- return_value = test_Py_ssize_t_converter_impl (module , a , b , c );
1709+ return_value = test_Py_ssize_t_converter_impl (module , a , b , c , d , e );
16801710
16811711exit :
16821712 return return_value ;
16831713}
16841714
16851715static PyObject *
16861716test_Py_ssize_t_converter_impl (PyObject * module , Py_ssize_t a , Py_ssize_t b ,
1687- Py_ssize_t c )
1688- /*[clinic end generated code: output=48214bc3d01f4dd7 input=3855f184bb3f299d ]*/
1717+ Py_ssize_t c , Py_ssize_t d , Py_ssize_t e )
1718+ /*[clinic end generated code: output=dc9ac2d804b13afc input=5c693ea198fa3dd5 ]*/
16891719
16901720
16911721/*[clinic input]
0 commit comments