about summary refs log tree commit diff
path: root/src/base
diff options
context:
space:
mode:
authorJoel de Vahl <joel@stalverk80.se>2008-10-07 16:17:58 +0000
committerJoel de Vahl <joel@stalverk80.se>2008-10-07 16:17:58 +0000
commit2b6f991010875e31184ddbc6c0917d13c02c7cbe (patch)
tree2492a56033d92ddd974db5c8030e6e857651110d /src/base
parentc0fa3003d793b0b42b9f643e9f0fd405c01b57d7 (diff)
downloadzcatch-2b6f991010875e31184ddbc6c0917d13c02c7cbe.tar.gz
zcatch-2b6f991010875e31184ddbc6c0917d13c02c7cbe.zip
Better mem_check reporting
Diffstat (limited to 'src/base')
-rw-r--r--src/base/system.c6
-rw-r--r--src/base/system.h3
2 files changed, 6 insertions, 3 deletions
diff --git a/src/base/system.c b/src/base/system.c
index 88b73f32..4acb2494 100644
--- a/src/base/system.c
+++ b/src/base/system.c
@@ -240,7 +240,7 @@ void mem_zero(void *block,unsigned size)
 	memset(block, 0, size);
 }
 
-void mem_check()
+int mem_check_imp()
 {
 	MEMHEADER *header = first;
 	while(header)
@@ -249,10 +249,12 @@ void mem_check()
 		if(tail->guard != MEM_GUARD_VAL)
 		{
 			dbg_msg("mem", "Memory check failed at %s(%d): %d", header->filename, header->line, header->size);
-			dbg_assert(0, "Memory check failed");
+			return 0;
 		}
 		header = header->next;
 	}
+
+	return 1;
 }
 
 IOHANDLE io_open(const char *filename, int flags)
diff --git a/src/base/system.h b/src/base/system.h
index 36f370cd..9271be5a 100644
--- a/src/base/system.h
+++ b/src/base/system.h
@@ -166,7 +166,8 @@ int mem_comp(const void *a, const void *b, int size);
 		Validates the heap
 		Will trigger a assert if memory has failed.
 */
-void mem_check();
+int mem_check_imp();
+#define mem_check() dbg_assert_imp(__FILE__, __LINE__, mem_check_imp(),  "Memory check failed")
 
 /* Group: File IO */
 enum {