https://github.com/python/cpython/commit/5ec845a0444bc97d8a684dc99840daeb5fa8c1e9
commit: 5ec845a0444bc97d8a684dc99840daeb5fa8c1e9
branch: 3.14
author: Miss Islington (bot) <[email protected]>
committer: encukou <[email protected]>
date: 2026-05-01T15:43:38+02:00
summary:

[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 <[email protected]>

files:
M Modules/_ctypes/_ctypes.c

diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 705aac896aab4e..eb1e70c9afdf0f 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;
 }
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to