17f61ed25a
Fix a ctypes regression of Python 3.8. When a ctypes.Structure is
passed by copy to a function, ctypes internals created a temporary
object which had the side effect of calling the structure finalizer
(__del__) twice. The Python semantics requires a finalizer to be
called exactly once. Fix ctypes internals to no longer call the
finalizer twice.
Create a new internal StructParam_Type which is only used by
_ctypes_callproc() to call PyMem_Free(ptr) on Py_DECREF(argument).
StructUnionType_paramfunc() creates such object.
(cherry picked from commit
|
||
---|---|---|
.. | ||
darwin | ||
libffi_osx | ||
_ctypes.c | ||
_ctypes_test.c | ||
_ctypes_test.h | ||
callbacks.c | ||
callproc.c | ||
cfield.c | ||
ctypes.h | ||
ctypes_dlfcn.h | ||
malloc_closure.c | ||
stgdict.c |