|
@@ -31,8 +31,6 @@ void *aligned_alloc(size_t align, size_t len)
|
|
|
return NULL;
|
|
|
|
|
|
header = ((size_t *)mem)[-1];
|
|
|
- end = mem + (header & -8);
|
|
|
- footer = ((size_t *)end)[-2];
|
|
|
new = (void *)((uintptr_t)mem + align-1 & -align);
|
|
|
|
|
|
if (!(header & 7)) {
|
|
@@ -41,6 +39,9 @@ void *aligned_alloc(size_t align, size_t len)
|
|
|
return new;
|
|
|
}
|
|
|
|
|
|
+ end = mem + (header & -8);
|
|
|
+ footer = ((size_t *)end)[-2];
|
|
|
+
|
|
|
((size_t *)mem)[-1] = header&7 | new-mem;
|
|
|
((size_t *)new)[-2] = footer&7 | new-mem;
|
|
|
((size_t *)new)[-1] = header&7 | end-new;
|