- /*
- * more room, adjust next header if any
- */
- if (hdr_size(hdr) - size >= 2 * sizeof(*hdr)) {
- struct mem_hdr *nxt = __hdr_nxt(pool, hdr, size);
-
- if (nxt) {
- nxt->size = hdr_size(hdr) - size - sizeof(*hdr);
- if (hdr_size(hdr) == pool->largest_block)
- pool->largest_block = hdr_size(nxt);
- hdr_mark_free(nxt);
- } else
- size = hdr_size(hdr);
- } else
- size = hdr_size(hdr);
-
- if (size == hdr_size(hdr) && size == pool->largest_block)
- pool->largest_block = 0;