|
|
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.