ref: 3acc9f1c414b3032531e1db73e77bb4af0f8ed38
dir: /util.c/
#include <u.h>
#include <libc.h>
#include "util.h"
void *
emalloc(usize sz)
{
void *p;
assert((p = malloc(sz)) != nil);
setmalloctag(p, getcallerpc(&sz));
return p;
}
void *
ecalloc(ulong nel, usize elsz)
{
void *p;
assert((p = calloc(nel, elsz)) != nil);
setmalloctag(p, getcallerpc(&nel));
return p;
}
void *
erealloc(void *p, usize sz)
{
void *np;
np = realloc(p, sz);
assert((sz == 0 && np == nil) || np != nil);
if(np != nil)
setrealloctag(np, getcallerpc(&p));
return np;
}
char *
estrndup(void *d, int n)
{
char *s;
s = emalloc(n+1);
memmove(s, d, n);
s[n] = 0;
return s;
}
char *
estrdup(char *s)
{
char *ns;
ns = strdup(s);
assert(ns != nil);
setmalloctag(ns, getcallerpc(&s));
return ns;
}