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)) {
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;