]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64 (GH...
authorVictor Stinner <vstinner@redhat.com>
Thu, 2 Aug 2018 14:47:26 +0000 (16:47 +0200)
committerGitHub <noreply@github.com>
Thu, 2 Aug 2018 14:47:26 +0000 (16:47 +0200)
commit3243f8c1fb16b6de73f1d7a30f5d09047553bce3
tree4e40eda62f1b3050b98823fa905e0b69fe68166c
parent894940b1099677c1ca0aa527dbb935e47d3d591a
bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64 (GH-168) (GH-8625)

Fixed bpo-29565: Corrected ctypes passing of large structs by value.

Added code and test to check that when a structure passed by value
is large enough to need to be passed by reference, a copy of the
original structure is passed. The callee updates the passed-in value,
and the test verifies that the caller's copy is unchanged. A similar
change was also added to the test added for bpo-20160 (that test was
passing, but the changes should guard against regressions).

(cherry picked from commit a86339b83fbd0932e0529a3c91935e997a234582)
Lib/ctypes/test/test_callbacks.py
Lib/ctypes/test/test_structures.py
Modules/_ctypes/_ctypes_test.c
Modules/_ctypes/libffi_msvc/ffi.c