From 18a215e6a85e10e4f505d6a2dab0d54b1f2cb23f Mon Sep 17 00:00:00 2001 From: davidhaas Date: Wed, 9 Apr 2003 20:19:27 +0000 Subject: [PATCH] Made memory stats more accurate (real amount and max amount of memory used). Also fixed a protection bug which occurred when memory allocation failed. --- src/core/mem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/mem.c b/src/core/mem.c index 7b64ddfb..b7b3a31a 100644 --- a/src/core/mem.c +++ b/src/core/mem.c @@ -153,6 +153,7 @@ mem_free(void *rmem) #ifdef MEM_STATS ++lwip_stats.mem.err; #endif /* MEM_STATS */ + sys_sem_signal(mem_sem); return; } mem = (struct mem *)((u8_t *)rmem - SIZEOF_STRUCT_MEM); @@ -166,7 +167,7 @@ mem_free(void *rmem) } #ifdef MEM_STATS - lwip_stats.mem.used -= mem->next - ((u8_t *)mem - ram) - SIZEOF_STRUCT_MEM; + lwip_stats.mem.used -= mem->next - ((u8_t *)mem - ram); #endif /* MEM_STATS */ plug_holes(mem); @@ -277,7 +278,7 @@ mem_malloc(mem_size_t size) mem2->used = 0; mem->used = 1; #ifdef MEM_STATS - lwip_stats.mem.used += size; + lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM); /* if(lwip_stats.mem.max < lwip_stats.mem.used) { lwip_stats.mem.max = lwip_stats.mem.used; } */