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