summaryrefslogtreecommitdiffstats
path: root/ext/tarkin/mem.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tarkin/mem.h')
-rw-r--r--ext/tarkin/mem.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/ext/tarkin/mem.h b/ext/tarkin/mem.h
new file mode 100644
index 00000000..f218f8e4
--- /dev/null
+++ b/ext/tarkin/mem.h
@@ -0,0 +1,32 @@
+#ifndef __MEM_H
+#define __MEM_H
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+
+#if defined(DBG_MEMLEAKS)
+
+extern void* dbg_malloc (char *file, int line, char *func, size_t bytes);
+extern void* dbg_calloc (char *file, int line, char *func, size_t count, size_t bytes);
+extern void* dbg_realloc (char *file, int line, char *func, char *what, void *mem, size_t bytes);
+extern void dbg_free (char *file, int line, char *func, char *what, void *mem);
+
+#define MALLOC(bytes) dbg_malloc(__FILE__,__LINE__,__FUNCTION__,bytes)
+#define CALLOC(count,bytes) dbg_calloc(__FILE__,__LINE__,__FUNCTION__,count,bytes)
+#define FREE(mem) dbg_free(__FILE__,__LINE__,__FUNCTION__,#mem,mem)
+#define REALLOC(mem,bytes) dbg_realloc(__FILE__,__LINE__,__FUNCTION__,#mem,mem,bytes)
+
+#else
+
+#define MALLOC malloc
+#define CALLOC calloc
+#define REALLOC realloc
+#define FREE free
+
+#endif
+
+#endif
+