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 */