Browse Source

reverse dependency order of memalign and aligned_alloc

this change eliminates the internal __memalign function and makes the
memalign and posix_memalign functions completely independent of the
malloc implementation, written portably in terms of aligned_alloc.
Rich Felker 4 years ago
parent
commit
d1e6fdd367
4 changed files with 5 additions and 10 deletions
  1. 0 2
      src/malloc/malloc_impl.h
  2. 1 3
      src/malloc/memalign.c
  3. 3 3
      src/malloc/memalign_altname.c
  4. 1 2
      src/malloc/posix_memalign.c

+ 0 - 2
src/malloc/malloc_impl.h

@@ -6,8 +6,6 @@
 
 hidden void *__expand_heap(size_t *);
 
-hidden void *__memalign(size_t, size_t);
-
 struct chunk {
 	size_t psize, csize;
 	struct chunk *next, *prev;

+ 1 - 3
src/malloc/memalign.c

@@ -3,7 +3,7 @@
 #include <errno.h>
 #include "malloc_impl.h"
 
-void *__memalign(size_t align, size_t len)
+void *aligned_alloc(size_t align, size_t len)
 {
 	unsigned char *mem, *new;
 
@@ -50,5 +50,3 @@ void *__memalign(size_t align, size_t len)
 	__bin_chunk(c);
 	return new;
 }
-
-weak_alias(__memalign, memalign);

+ 3 - 3
src/malloc/memalign_altname.c

@@ -1,7 +1,7 @@
+#define _BSD_SOURCE
 #include <stdlib.h>
-#include "malloc_impl.h"
 
-void *aligned_alloc(size_t align, size_t len)
+void *memalign(size_t align, size_t len)
 {
-	return __memalign(align, len);
+	return aligned_alloc(align, len);
 }

+ 1 - 2
src/malloc/posix_memalign.c

@@ -1,11 +1,10 @@
 #include <stdlib.h>
 #include <errno.h>
-#include "malloc_impl.h"
 
 int posix_memalign(void **res, size_t align, size_t len)
 {
 	if (align < sizeof(void *)) return EINVAL;
-	void *mem = __memalign(align, len);
+	void *mem = aligned_alloc(align, len);
 	if (!mem) return errno;
 	*res = mem;
 	return 0;