xref: /plan9-contrib/sys/src/cmd/aquarela/smballoc.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
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 Colombier smbemallocz(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 Colombier smbemalloc(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 Colombier smbestrdup(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 Colombier smbfree(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 Colombier smberealloc(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