1 #include "headers.h" 2 3 #ifndef LEAK 4 void * smbemallocz(ulong size,int clear)5smbemallocz(ulong size, int clear) 6 { 7 void *p = nbemalloc(size); 8 if (clear && p) 9 memset(p, 0, size); 10 return p; 11 } 12 13 void * smbemalloc(ulong size)14smbemalloc(ulong size) 15 { 16 return smbemallocz(size, 0); 17 } 18 19 char * smbestrdup(char * p)20smbestrdup(char *p) 21 { 22 char *q; 23 q = smbemalloc(strlen(p) + 1); 24 return strcpy(q, p); 25 } 26 #endif 27 28 void smbfree(void ** pp)29smbfree(void **pp) 30 { 31 void *p = *pp; 32 if (p) { 33 free(p); 34 *pp = nil; 35 } 36 } 37 38 void smberealloc(void ** pp,ulong size)39smberealloc(void **pp, ulong size) 40 { 41 *pp = realloc(*pp, size); 42 assert(size == 0 || *pp); 43 } 44