diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2011-01-31 21:08:57 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2011-01-31 21:08:57 (GMT) |
commit | 0ea622a5c88b75db15d818e91ec2f57651473a66 (patch) | |
tree | 34de987a85aa4329509b04109d9c0c4cfa6d6871 /Modules | |
parent | bd0c897332faddce4ebdd4698f976c99a70ec346 (diff) | |
download | cpython-0ea622a5c88b75db15d818e91ec2f57651473a66.zip cpython-0ea622a5c88b75db15d818e91ec2f57651473a66.tar.gz cpython-0ea622a5c88b75db15d818e91ec2f57651473a66.tar.bz2 |
Issue #8275: Fix passing of callback arguments with ctypes under Win64.
Patch by Stan Mihai. Ok'ed by Georg.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_ctypes/_ctypes_test.c | 14 | ||||
-rw-r--r-- | Modules/_ctypes/libffi_msvc/ffi.c | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/Modules/_ctypes/_ctypes_test.c b/Modules/_ctypes/_ctypes_test.c index 36bd0a1..3a6845f 100644 --- a/Modules/_ctypes/_ctypes_test.c +++ b/Modules/_ctypes/_ctypes_test.c @@ -12,6 +12,20 @@ /* some functions handy for testing */ +EXPORT(int) +_testfunc_cbk_reg_int(int a, int b, int c, int d, int e, + int (*func)(int, int, int, int, int)) +{ + return func(a*a, b*b, c*c, d*d, e*e); +} + +EXPORT(double) +_testfunc_cbk_reg_double(double a, double b, double c, double d, double e, + double (*func)(double, double, double, double, double)) +{ + return func(a*a, b*b, c*c, d*d, e*e); +} + EXPORT(void)testfunc_array(int values[4]) { printf("testfunc_array %d %d %d %d\n", diff --git a/Modules/_ctypes/libffi_msvc/ffi.c b/Modules/_ctypes/libffi_msvc/ffi.c index 5df4ba4..6e595e9 100644 --- a/Modules/_ctypes/libffi_msvc/ffi.c +++ b/Modules/_ctypes/libffi_msvc/ffi.c @@ -380,7 +380,7 @@ ffi_prep_closure_loc (ffi_closure* closure, short bytes; char *tramp; #ifdef _WIN64 - int mask; + int mask = 0; #endif FFI_ASSERT (cif->abi == FFI_SYSV); |