Annotation of 43BSD/ingres/source/equel/nalloc.c, revision 1.1.1.1

1.1       root        1: # include      <sccs.h>
                      2: 
                      3: SCCSID(@(#)nalloc.c    8.1     12/31/84)
                      4: 
                      5: 
                      6: /*
                      7: **     NALLOC --
                      8: **             Dynamic allocation routine which
                      9: **             merely calls alloc(III), returning 
                     10: **             0 if no core and a pointer otherwise.
                     11: **
                     12: */
                     13: 
                     14: char *nalloc(s)
                     15: int    s;
                     16: {
                     17: #      ifdef PDP11
                     18:        unsigned        size;
                     19: 
                     20:        size = s;
                     21:        size = alloc(size);
                     22:        if (size == -1)
                     23:                return (0);
                     24:        return (size);
                     25: 
                     26: #      else
                     27:        extern char     *malloc();
                     28: 
                     29:        return (malloc(s));
                     30: #      endif
                     31: }
                     32: /*
                     33: **     SALLOC -- allocate
                     34: **             place for string and initialize it,
                     35: **             return string or 0 if no core.
                     36: **
                     37: */
                     38: 
                     39: char *salloc(s)
                     40: char           *s;
                     41: {
                     42:        register unsigned       i;
                     43:        register char           *string;
                     44:        char                    *malloc();
                     45: 
                     46:        string = s;
                     47: #      ifdef PDP11
                     48:        i = alloc(length(string) + 1);
                     49:        if (i == -1)
                     50:                return (0);
                     51: #      else
                     52:        i = (unsigned)malloc(length(string) + 1);
                     53: #      endif
                     54: 
                     55:        if (i)
                     56:                smove(string, i);
                     57:        return ((char *)i);
                     58: }
                     59: 
                     60: /*
                     61: **     XFREE -- Free possibly dynamic storage
                     62: **             checking if its in the heap first.
                     63: **
                     64: **             0 - freed
                     65: **             1 - not in heap
                     66: **
                     67: */
                     68: 
                     69: xfree(cp)
                     70: char           *cp;
                     71: {
                     72:        extern                  end;    /* break (II) */
                     73:        register char           *lcp, *lend, *lacp;
                     74: 
                     75:        lcp = cp;
                     76:        lacp = (char *)&cp;
                     77:        lend = (char *)&end;
                     78:        if (lcp >= lend && lcp < lacp)  /* make sure its in heap */
                     79:        {
                     80:                free(lcp);
                     81:                return (0);
                     82:        }
                     83:        return (1);
                     84: }

unix.superglobalmegacorp.com

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