提交 d1e6fdd3 编写于 作者: R Rich Felker

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.
上级 de798308
......@@ -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;
......
......@@ -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);
#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);
}
#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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册