Mercurial > ~dholland > hg > ag > index.cgi
diff anagram/support/myalloc.h @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/anagram/support/myalloc.h Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,39 @@ +/* + * AnaGram, A System for Syntax Directed Programming + * Copyright 1993-2002 Parsifal Software. All Rights Reserved. + * See the file COPYING for license and usage terms. + * + * myalloc.h - memory management wrappers + */ + +#ifndef MYALLOC_H +#define MYALLOC_H + +//#include <malloc.h> + +void *myalloc(unsigned n); +void *myzalloc(unsigned n, unsigned size); +void myfree(void *ptr, const char *file, int line); +void *myrealloc(void *p, unsigned n, const char *file, int line); +void ptr_ng(const void *ptr, const char *file, int line); +int ptr_ok(void *ptr); +void size_ok(const void *ptr, unsigned, const char *file, int line); +char *mystrdup(const char *); + +#define ALLOCATE(n,type) ((type *) myalloc( (n) *sizeof(type) ) ) + +#define ALLOCATE_ST(p, n) (*(void **)(&p) = myalloc( (n)*sizeof(*(p)) )) + +#define ZALLOCATE(n,type) ((type *) myzalloc( (n) , sizeof(type) ) ) + +#define ZALLOCATE_ST(p, n) (*(void **)(&p) = myzalloc( (n), sizeof(*(p)) )) + +#define reallocate(a,n,type) ((type *) myrealloc((a),(n)*sizeof(type), __FILE__, __LINE__)) + +#define REALLOCATE_ST(p, n) (*(void **)(&p) = myrealloc((p), (n)*sizeof(*(p)) , __FILE__, __LINE__)) + +#define ok_ptr(p) ptr_ng(p, __FILE__, __LINE__) +#define DEALLOCATE(x) myfree(x, __FILE__, __LINE__) + + +#endif /* MYALLOC_H */