Remove (unused) posix_memalign fallback
Was wrong. The returned pointer couldn't be passed to free(). Ouch!
This commit is contained in:
parent
eb28d6e48b
commit
6172ec5d87
|
@ -77,7 +77,7 @@ GTK_DOC_CHECK([1.15],[--flavour no-tmpl])
|
||||||
])
|
])
|
||||||
|
|
||||||
# Functions and headers
|
# Functions and headers
|
||||||
AC_CHECK_FUNCS(atexit mprotect sysconf getpagesize mmap isatty newlocale strtod_l posix_memalign)
|
AC_CHECK_FUNCS(atexit mprotect sysconf getpagesize mmap isatty newlocale strtod_l)
|
||||||
AC_CHECK_HEADERS(unistd.h sys/mman.h xlocale.h stdbool.h)
|
AC_CHECK_HEADERS(unistd.h sys/mman.h xlocale.h stdbool.h)
|
||||||
|
|
||||||
# Compiler flags
|
# Compiler flags
|
||||||
|
|
34
src/hb.hh
34
src/hb.hh
|
@ -211,14 +211,6 @@ extern "C" void hb_free_impl(void *ptr);
|
||||||
#define calloc hb_calloc_impl
|
#define calloc hb_calloc_impl
|
||||||
#define realloc hb_realloc_impl
|
#define realloc hb_realloc_impl
|
||||||
#define free hb_free_impl
|
#define free hb_free_impl
|
||||||
|
|
||||||
#ifdef hb_memalign_impl
|
|
||||||
extern "C" int hb_memalign_impl(void **memptr, size_t alignment, size_t size);
|
|
||||||
#define posix_memalign hb_memalign_impl
|
|
||||||
#else
|
|
||||||
#undef HAVE_POSIX_MEMALIGN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -515,32 +507,6 @@ typedef uint64_t hb_vector_size_impl_t;
|
||||||
#define VAR 1
|
#define VAR 1
|
||||||
|
|
||||||
|
|
||||||
/* fallback for posix_memalign() */
|
|
||||||
static inline int
|
|
||||||
_hb_memalign(void **memptr, size_t alignment, size_t size)
|
|
||||||
{
|
|
||||||
if (unlikely (0 != (alignment & (alignment - 1)) ||
|
|
||||||
!alignment ||
|
|
||||||
0 != (alignment & (sizeof (void *) - 1))))
|
|
||||||
return EINVAL;
|
|
||||||
|
|
||||||
char *p = (char *) malloc (size + alignment - 1);
|
|
||||||
if (unlikely (!p))
|
|
||||||
return ENOMEM;
|
|
||||||
|
|
||||||
size_t off = (size_t) p & (alignment - 1);
|
|
||||||
if (off)
|
|
||||||
p += alignment - off;
|
|
||||||
|
|
||||||
*memptr = (void *) p;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#if !defined(posix_memalign) && !defined(HAVE_POSIX_MEMALIGN)
|
|
||||||
#define posix_memalign _hb_memalign
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Big-endian integers. Here because fundamental.
|
* Big-endian integers. Here because fundamental.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue