21 reroot *r = (reroot *)remalloc(
sizeof(reroot),
"recycle.c, root");
22 r->list = (recycle *)0;
23 r->trash = (recycle *)0;
24 r->size = mdbalign(size);
30void refree(r)
struct reroot *r;
33 if ((temp = r->list) != NULL)
36 free((
char *)r->list);
44char *renewx(r)
struct reroot *r;
49 r->trash = temp->next;
50 (void)memset((
void *)temp, 0, r->size);
52 r->numleft = r->size * ((size_t)1 << r->logsize);
53 if (r->numleft < REMAX)
55 temp = (recycle *)remalloc(
sizeof(recycle) + r->numleft,
"recycle.c, data");
58 r->numleft -= r->size;
59 temp = (recycle *)((
char *)(r->list + 1) + r->numleft);
64char *remalloc(len, purpose)
68 char *x = (
char *)malloc(len);
70 fprintf(stderr,
"malloc of %d failed for %s\n", (
int)len, purpose);