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