Annotation of researchv10no/cmd/ops/nalloc.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.