about summary refs log tree commit diff
path: root/src/base/system.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/system.c')
-rw-r--r--src/base/system.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/base/system.c b/src/base/system.c
index 0f0aaf70..c0b8edec 100644
--- a/src/base/system.c
+++ b/src/base/system.c
@@ -210,20 +210,24 @@ void mem_free(void *p)
 	}
 }
 
-void mem_debug_dump()
+void mem_debug_dump(IOHANDLE file)
 {
 	char buf[1024];
 	MEMHEADER *header = first;
-	IOHANDLE f = io_open("memory.txt", IOFLAG_WRITE);
+	if(!file)
+		file = io_open("memory.txt", IOFLAG_WRITE);
 	
-	while(header)
+	if(file)
 	{
-		str_format(buf, sizeof(buf), "%s(%d): %d\n", header->filename, header->line, header->size);
-		io_write(f, buf, strlen(buf));
-		header = header->next;
-	}
+		while(header)
+		{
+			str_format(buf, sizeof(buf), "%s(%d): %d\n", header->filename, header->line, header->size);
+			io_write(file, buf, strlen(buf));
+			header = header->next;
+		}
 	
-	io_close(f);
+		io_close(file);
+	}
 }