about summary refs log tree commit diff
diff options
context:
space:
mode:
-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 {