From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 1 May 2026 13:43:38 +0000 (+0200) Subject: [3.14] gh-148967: Fix FFI type pointer handling for C complex support in set_stginfo_... X-Git-Tag: v3.14.5rc1~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ec845a0444bc97d8a684dc99840daeb5fa8c1e9;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-148967: Fix FFI type pointer handling for C complex support in set_stginfo_ffi_type_pointer (GH-148969) (GH-149224) (cherry picked from commit f2c7c0d2b799c927d9a78e87e4a640d3f9b0356c) Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com> --- diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index 705aac896aab..eb1e70c9afdf 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -2235,6 +2235,7 @@ c_void_p_from_param_impl(PyObject *type, PyTypeObject *cls, PyObject *value) static int set_stginfo_ffi_type_pointer(StgInfo *stginfo, struct fielddesc *fmt) { +#if defined(_Py_FFI_SUPPORT_C_COMPLEX) if (!fmt->pffi_type->elements) { stginfo->ffi_type_pointer = *fmt->pffi_type; } @@ -2254,6 +2255,10 @@ set_stginfo_ffi_type_pointer(StgInfo *stginfo, struct fielddesc *fmt) memcpy(stginfo->ffi_type_pointer.elements, fmt->pffi_type->elements, els_size); } +#else + assert(!fmt->pffi_type->elements); + stginfo->ffi_type_pointer = *fmt->pffi_type; +#endif return 0; }