+2010-05-01 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * kern/mm.c (grub_real_malloc): Put magic and size assignment in common
+ part.
+
2010-05-01 Vladimir Serbinenko <phcoder@gmail.com>
* kern/mm.c (grub_mm_init_region): Check for region size after aligning
+---------------+ v
*/
q->next = p->next;
- p->magic = GRUB_MM_ALLOC_MAGIC;
}
else if (align == 1 || p->size == n + extra)
{
p->size -= n;
p += p->size;
- p->size = n;
- p->magic = GRUB_MM_ALLOC_MAGIC;
}
else if (extra == 0)
{
grub_mm_header_t r;
-
- p->magic = GRUB_MM_ALLOC_MAGIC;
r = p + extra + n;
r->magic = GRUB_MM_FREE_MAGIC;
q = r;
r->next = r;
}
-
- p->size = n;
}
else
{
p->size = extra;
p->next = r;
p += extra;
- p->size = n;
- p->magic = GRUB_MM_ALLOC_MAGIC;
}
+ p->magic = GRUB_MM_ALLOC_MAGIC;
+ p->size = n;
+
/* Mark find as a start marker for next allocation to fasten it.
This will have side effect of fragmenting memory as small
pieces before this will be un-used. */