ref: dad1582627ca77f86f0a6c64d9503a36cab8f00c
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;
}