From d00b86aa517873ba8b590e3c0473901219f3b07d Mon Sep 17 00:00:00 2001 From: Marcus Comstedt <marcus@mc.pp.se> Date: Wed, 14 Aug 2013 11:17:04 +0200 Subject: [PATCH] pike_memory: Use regular memalign if posix_memalign is unavailable --- src/configure.in | 1 + src/pike_memory.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/configure.in b/src/configure.in index f07a8b299c..a7ed62c5c6 100644 --- a/src/configure.in +++ b/src/configure.in @@ -4666,6 +4666,7 @@ AC_CHECK_FUNCS( \ SetErrorMode \ thread_info \ host_get_clock_service \ + posix_memalign \ ) # SunOS 4 realloc() returns NULL when reallocing NULL. diff --git a/src/pike_memory.c b/src/pike_memory.c index a6f1250619..2a250eef86 100644 --- a/src/pike_memory.c +++ b/src/pike_memory.c @@ -539,9 +539,17 @@ PMOD_EXPORT void *debug_xcalloc(size_t n, size_t s) PMOD_EXPORT void *aligned_alloc(size_t size, size_t alignment) { void * ret; + if (!size) return 0; + +#ifdef HAVE_POSIX_MEMALIGN if (posix_memalign(&ret, alignment, size)) { Pike_error(msg_out_of_mem_2, size); } +#else + if ((ret = memalign(alignment, size)) == NULL) { + Pike_error(msg_out_of_mem_2, size); + } +#endif return ret; } -- GitLab