aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/main/minimime/mm_mem.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/main/minimime/mm_mem.h')
-rw-r--r--trunk/main/minimime/mm_mem.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/trunk/main/minimime/mm_mem.h b/trunk/main/minimime/mm_mem.h
new file mode 100644
index 000000000..34840d033
--- /dev/null
+++ b/trunk/main/minimime/mm_mem.h
@@ -0,0 +1,32 @@
+#ifndef __MEM_H
+#define __MEM_H
+
+#ifdef __HAVE_LEAK_DETECTION
+
+#define NAMEOF(v) #v
+#define xmalloc(x) MM_malloc(x, __FILE__, __LINE__)
+#define xfree(x) MM_free(x, __FILE__, __LINE__, NAMEOF(x))
+#define xstrdup(x) MM_strdup(x, __FILE__, __LINE__)
+#define xrealloc(x, y) MM_realloc(x, y, __FILE__, __LINE__)
+
+TAILQ_HEAD(MM_chunks, MM_mem_chunk);
+
+struct MM_mem_chunk {
+ void *address;
+ const char *filename;
+ uint32_t line;
+ size_t size;
+
+ TAILQ_ENTRY(MM_mem_chunk) next;
+};
+
+void *MM_malloc(size_t, char *, int);
+void *MM_realloc(void *, size_t, char *, int);
+void MM_free(void *, char *, int, char *);
+char *MM_strdup(const char *, char *, int);
+void MM_leakd_init(void);
+void MM_leakd_printallocated(void);
+void MM_leakd_flush(void);
+
+#endif /* __HAVE_LEAK_DETECTION */
+#endif /* ! HAVE_MEM_H */