@@ -123,7 +123,9 @@ struct CPyCppyy_tagPyCArgObject { // not public (but stable; note that olde
123123#define ct_c_fcomplex 21
124124#define ct_c_complex 22
125125#define ct_c_pointer 23
126- #define NTYPES 24
126+ #define ct_c_int16 24
127+ #define ct_c_int32 25
128+ #define NTYPES 26
127129
128130static std::array<const char *, NTYPES> gCTypesNames = {
129131 " c_bool" , " c_char" , " c_wchar" , " c_byte" , " c_ubyte" , " c_short" , " c_ushort" , " c_uint16" ,
@@ -387,6 +389,10 @@ static inline type CPyCppyy_PyLong_As##name(PyObject* pyobject) \
387389
388390CPPYY_PYLONG_AS_TYPE (UInt8, uint8_t , 0 , UCHAR_MAX)
389391CPPYY_PYLONG_AS_TYPE(Int8, int8_t , SCHAR_MIN, SCHAR_MAX)
392+ CPPYY_PYLONG_AS_TYPE(UInt16, uint16_t , 0 , UINT16_MAX)
393+ CPPYY_PYLONG_AS_TYPE(Int16, int16_t , INT16_MIN, INT16_MAX)
394+ CPPYY_PYLONG_AS_TYPE(UInt32, uint32_t , 0 , UINT32_MAX)
395+ CPPYY_PYLONG_AS_TYPE(Int32, int32_t , INT32_MIN, INT32_MAX)
390396CPPYY_PYLONG_AS_TYPE(UShort, unsigned short , 0 , USHRT_MAX)
391397CPPYY_PYLONG_AS_TYPE(Short, short , SHRT_MIN, SHRT_MAX)
392398CPPYY_PYLONG_AS_TYPE(StrictInt, int , INT_MIN, INT_MAX)
@@ -782,6 +788,10 @@ CPPYY_IMPL_BASIC_CONST_CHAR_REFCONVERTER(UChar, unsigned char, c_uchar, 0
782788CPPYY_IMPL_BASIC_CONST_REFCONVERTER(Bool, bool , c_bool, CPyCppyy_PyLong_AsBool)
783789CPPYY_IMPL_BASIC_CONST_REFCONVERTER(Int8, int8_t , c_int8, CPyCppyy_PyLong_AsInt8)
784790CPPYY_IMPL_BASIC_CONST_REFCONVERTER(UInt8, uint8_t , c_uint8, CPyCppyy_PyLong_AsUInt8)
791+ CPPYY_IMPL_BASIC_CONST_REFCONVERTER(Int16, int16_t , c_int16, CPyCppyy_PyLong_AsInt16)
792+ CPPYY_IMPL_BASIC_CONST_REFCONVERTER(UInt16, uint16_t , c_uint16, CPyCppyy_PyLong_AsUInt16)
793+ CPPYY_IMPL_BASIC_CONST_REFCONVERTER(Int32, int32_t , c_int32, CPyCppyy_PyLong_AsInt32)
794+ CPPYY_IMPL_BASIC_CONST_REFCONVERTER(UInt32, uint32_t , c_uint32, CPyCppyy_PyLong_AsUInt32)
785795CPPYY_IMPL_BASIC_CONST_REFCONVERTER(Short, short , c_short, CPyCppyy_PyLong_AsShort)
786796CPPYY_IMPL_BASIC_CONST_REFCONVERTER(UShort, unsigned short , c_ushort, CPyCppyy_PyLong_AsUShort)
787797CPPYY_IMPL_BASIC_CONST_REFCONVERTER(Int, int , c_int, CPyCppyy_PyLong_AsStrictInt)
@@ -857,6 +867,10 @@ CPPYY_IMPL_REFCONVERTER(SChar, c_byte, signed char, 'b');
857867CPPYY_IMPL_REFCONVERTER (UChar, c_ubyte, unsigned char , ' B' );
858868CPPYY_IMPL_REFCONVERTER (Int8, c_int8, int8_t , ' b' );
859869CPPYY_IMPL_REFCONVERTER (UInt8, c_uint8, uint8_t , ' B' );
870+ CPPYY_IMPL_REFCONVERTER (Int16, c_int16, int16_t , ' h' );
871+ CPPYY_IMPL_REFCONVERTER (UInt16, c_uint16, uint16_t , ' H' );
872+ CPPYY_IMPL_REFCONVERTER (Int32, c_int32, int32_t , ' i' );
873+ CPPYY_IMPL_REFCONVERTER (UInt32, c_uint32, uint32_t , ' I' );
860874CPPYY_IMPL_REFCONVERTER (Short, c_short, short , ' h' );
861875CPPYY_IMPL_REFCONVERTER (UShort, c_ushort, unsigned short , ' H' );
862876CPPYY_IMPL_REFCONVERTER_FROM_MEMORY (Int, c_int);
@@ -1015,6 +1029,14 @@ CPPYY_IMPL_BASIC_CONVERTER_IB(
10151029 Int8, int8_t , long , c_int8, PyInt_FromLong, CPyCppyy_PyLong_AsInt8, ' l' )
10161030CPPYY_IMPL_BASIC_CONVERTER_IB(
10171031 UInt8, uint8_t , long , c_uint8, PyInt_FromLong, CPyCppyy_PyLong_AsUInt8, ' l' )
1032+ CPPYY_IMPL_BASIC_CONVERTER_IB(
1033+ Int16, int16_t , long , c_int16, PyInt_FromLong, CPyCppyy_PyLong_AsInt16, ' l' )
1034+ CPPYY_IMPL_BASIC_CONVERTER_IB(
1035+ UInt16, uint16_t , long , c_uint16, PyInt_FromLong, CPyCppyy_PyLong_AsUInt16, ' l' )
1036+ CPPYY_IMPL_BASIC_CONVERTER_IB(
1037+ Int32, int32_t , long , c_int32, PyInt_FromLong, CPyCppyy_PyLong_AsInt32, ' l' )
1038+ CPPYY_IMPL_BASIC_CONVERTER_IB(
1039+ UInt32, uint32_t , long , c_uint32, PyInt_FromLong, CPyCppyy_PyLong_AsUInt32, ' l' )
10181040CPPYY_IMPL_BASIC_CONVERTER_IB(
10191041 Short, short , long , c_short, PyInt_FromLong, CPyCppyy_PyLong_AsShort, ' l' )
10201042CPPYY_IMPL_BASIC_CONVERTER_IB(
@@ -1750,7 +1772,11 @@ CPPYY_IMPL_ARRAY_CONVERTER(UChar, c_ubyte, unsigned char, 'B', )
17501772CPPYY_IMPL_ARRAY_CONVERTER (Byte, c_ubyte, std::byte, ' B' , )
17511773#endif
17521774CPPYY_IMPL_ARRAY_CONVERTER (Int8, c_byte, int8_t , ' b' , _i8)
1775+ CPPYY_IMPL_ARRAY_CONVERTER(Int16, c_int16, int16_t , ' h' , _i16)
1776+ CPPYY_IMPL_ARRAY_CONVERTER(Int32, c_int32, int32_t , ' i' , _i32)
17531777CPPYY_IMPL_ARRAY_CONVERTER(UInt8, c_ubyte, uint8_t , ' B' , _i8)
1778+ CPPYY_IMPL_ARRAY_CONVERTER(UInt16, c_uint16, uint16_t , ' H' , _i16)
1779+ CPPYY_IMPL_ARRAY_CONVERTER(UInt32, c_uint32, uint32_t , ' I' , _i32)
17541780CPPYY_IMPL_ARRAY_CONVERTER(Short, c_short, short , ' h' , )
17551781CPPYY_IMPL_ARRAY_CONVERTER(UShort, c_ushort, unsigned short , ' H' , )
17561782CPPYY_IMPL_ARRAY_CONVERTER(Int, c_int, int , ' i' , )
@@ -3466,9 +3492,21 @@ static struct InitConvFactories_t {
34663492 gf[" int8_t" ] = (cf_t )+[](cdims_t ) { static Int8Converter c{}; return &c; };
34673493 gf[" const int8_t&" ] = (cf_t )+[](cdims_t ) { static ConstInt8RefConverter c{}; return &c; };
34683494 gf[" int8_t&" ] = (cf_t )+[](cdims_t ) { static Int8RefConverter c{}; return &c; };
3495+ gf[" int16_t" ] = (cf_t )+[](cdims_t ) { static Int16Converter c{}; return &c; };
3496+ gf[" const int16_t&" ] = (cf_t )+[](cdims_t ) { static ConstInt16RefConverter c{}; return &c; };
3497+ gf[" int16_t&" ] = (cf_t )+[](cdims_t ) { static Int16RefConverter c{}; return &c; };
3498+ gf[" int32_t" ] = (cf_t )+[](cdims_t ) { static Int32Converter c{}; return &c; };
3499+ gf[" const int32_t&" ] = (cf_t )+[](cdims_t ) { static ConstInt32RefConverter c{}; return &c; };
3500+ gf[" int32_t&" ] = (cf_t )+[](cdims_t ) { static Int32RefConverter c{}; return &c; };
34693501 gf[" uint8_t" ] = (cf_t )+[](cdims_t ) { static UInt8Converter c{}; return &c; };
34703502 gf[" const uint8_t&" ] = (cf_t )+[](cdims_t ) { static ConstUInt8RefConverter c{}; return &c; };
34713503 gf[" uint8_t&" ] = (cf_t )+[](cdims_t ) { static UInt8RefConverter c{}; return &c; };
3504+ gf[" uint16_t" ] = (cf_t )+[](cdims_t ) { static UInt16Converter c{}; return &c; };
3505+ gf[" const uint16_t&" ] = (cf_t )+[](cdims_t ) { static ConstUInt16RefConverter c{}; return &c; };
3506+ gf[" uint16_t&" ] = (cf_t )+[](cdims_t ) { static UInt16RefConverter c{}; return &c; };
3507+ gf[" uint32_t" ] = (cf_t )+[](cdims_t ) { static UInt32Converter c{}; return &c; };
3508+ gf[" const uint32_t&" ] = (cf_t )+[](cdims_t ) { static ConstUInt32RefConverter c{}; return &c; };
3509+ gf[" uint32_t&" ] = (cf_t )+[](cdims_t ) { static UInt32RefConverter c{}; return &c; };
34723510 gf[" short" ] = (cf_t )+[](cdims_t ) { static ShortConverter c{}; return &c; };
34733511 gf[" const short&" ] = (cf_t )+[](cdims_t ) { static ConstShortRefConverter c{}; return &c; };
34743512 gf[" short&" ] = (cf_t )+[](cdims_t ) { static ShortRefConverter c{}; return &c; };
@@ -3521,7 +3559,11 @@ static struct InitConvFactories_t {
35213559 gf[" std::byte ptr" ] = (cf_t )+[](cdims_t d) { return new ByteArrayConverter{d}; };
35223560#endif
35233561 gf[" int8_t ptr" ] = (cf_t )+[](cdims_t d) { return new Int8ArrayConverter{d}; };
3562+ gf[" int16_t ptr" ] = (cf_t )+[](cdims_t d) { return new Int16ArrayConverter{d}; };
3563+ gf[" int32_t ptr" ] = (cf_t )+[](cdims_t d) { return new Int32ArrayConverter{d}; };
35243564 gf[" uint8_t ptr" ] = (cf_t )+[](cdims_t d) { return new UInt8ArrayConverter{d}; };
3565+ gf[" uint16_t ptr" ] = (cf_t )+[](cdims_t d) { return new UInt16ArrayConverter{d}; };
3566+ gf[" uint32_t ptr" ] = (cf_t )+[](cdims_t d) { return new UInt32ArrayConverter{d}; };
35253567 gf[" short ptr" ] = (cf_t )+[](cdims_t d) { return new ShortArrayConverter{d}; };
35263568 gf[" unsigned short ptr" ] = (cf_t )+[](cdims_t d) { return new UShortArrayConverter{d}; };
35273569 gf[" int ptr" ] = (cf_t )+[](cdims_t d) { return new IntArrayConverter{d}; };
0 commit comments