|
|
1.1 root 1: char *
2: nalloc(pp, size, asize)
3: register char **pp;
4: {
5: char *malloc(), *realloc();
6: register char *p; int np;
7: for (;;) {
8: if ((p = pp[1]) + size <= pp[2])
9: return (pp[1] += size, p);
10: if (p = pp[0])
11: np = pp[1] - p, p = realloc(p, asize += pp[2] - p);
12: else
13: np = 0, p = malloc(asize);
14: if (p == 0)
15: return 0;
16: pp[0] = p;
17: pp[1] = p + np;
18: pp[2] = p + asize;
19: }
20: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.