diff options
author | erykoff <erykoff@stanford.edu> | 2020-12-22 11:12:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-22 11:12:07 (GMT) |
commit | b3c77ecbbe0ad3e3cc6dbd885792203e9e6ec858 (patch) | |
tree | f8b4135dcaf8d0334b31b819eed1ca9b59a10349 | |
parent | fbc7723778be01b8f3bb72d2dcac15ab9fbb9923 (diff) | |
download | cpython-b3c77ecbbe0ad3e3cc6dbd885792203e9e6ec858.zip cpython-b3c77ecbbe0ad3e3cc6dbd885792203e9e6ec858.tar.gz cpython-b3c77ecbbe0ad3e3cc6dbd885792203e9e6ec858.tar.bz2 |
bpo-42688: Fix ffi alloc/free when using external libffi on macos (GH-23868)
Automerge-Triggered-By: GH:ronaldoussoren
-rw-r--r-- | Modules/_ctypes/malloc_closure.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Modules/_ctypes/malloc_closure.c b/Modules/_ctypes/malloc_closure.c index 4f220e4..788bae6 100644 --- a/Modules/_ctypes/malloc_closure.c +++ b/Modules/_ctypes/malloc_closure.c @@ -91,12 +91,16 @@ static void more_core(void) /* put the item back into the free list */ void Py_ffi_closure_free(void *p) { -#if USING_APPLE_OS_LIBFFI && HAVE_FFI_CLOSURE_ALLOC +#if HAVE_FFI_CLOSURE_ALLOC +#if USING_APPLE_OS_LIBFFI if (__builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)) { +#endif ffi_closure_free(p); return; +#if USING_APPLE_OS_LIBFFI } #endif +#endif ITEM *item = (ITEM *)p; item->next = free_list; free_list = item; @@ -105,11 +109,15 @@ void Py_ffi_closure_free(void *p) /* return one item from the free list, allocating more if needed */ void *Py_ffi_closure_alloc(size_t size, void** codeloc) { -#if USING_APPLE_OS_LIBFFI && HAVE_FFI_CLOSURE_ALLOC +#if HAVE_FFI_CLOSURE_ALLOC +#if USING_APPLE_OS_LIBFFI if (__builtin_available(macos 10.15, ios 13, watchos 6, tvos 13, *)) { +#endif return ffi_closure_alloc(size, codeloc); +#if USING_APPLE_OS_LIBFFI } #endif +#endif ITEM *item; if (!free_list) more_core(); |