[sr-dev] git:master: core/mem: f_malloc - groupped few updates of usage stats in insert free function

Daniel-Constantin Mierla miconda at gmail.com
Sat May 3 22:15:25 CEST 2014


Module: sip-router
Branch: master
Commit: a7d59baca2d03b48f020b10adf6e6e614494a35e
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a7d59baca2d03b48f020b10adf6e6e614494a35e

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Sat May  3 22:13:16 2014 +0200

core/mem: f_malloc - groupped few updates of usage stats in insert free function

---

 mem/f_malloc.c |   11 +++--------
 1 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/mem/f_malloc.c b/mem/f_malloc.c
index 026ff39..4c3576a 100644
--- a/mem/f_malloc.c
+++ b/mem/f_malloc.c
@@ -289,6 +289,7 @@ void fm_split_frag(struct fm_block* qm, struct fm_frag* frag,
 		FRAG_CLEAR_USED(n); /* never used */
 		/* new frag overhead */
 		qm->real_used+=FRAG_OVERHEAD;
+		qm->used-=FRAG_OVERHEAD;
 #ifdef DBG_F_MALLOC
 		/* frag created by malloc, mark it*/
 		n->file=file;
@@ -342,8 +343,8 @@ struct fm_block* fm_malloc_init(char* address, unsigned long size, int type)
 	qm=(struct fm_block*)start;
 	memset(qm, 0, sizeof(struct fm_block));
 	qm->size=size;
-	qm->used = size;
-	qm->real_used=size + init_overhead;
+	qm->used = size - init_overhead;
+	qm->real_used=size;
 	qm->max_real_used=init_overhead;
 	qm->type = type;
 	size-=init_overhead;
@@ -678,10 +679,6 @@ void* fm_realloc(struct fm_block* qm, void* p, unsigned long size)
 #else
 		fm_split_frag(qm, f, size);
 #endif
-		/* fm_split frag already adds FRAG_OVERHEAD for the newly created
-		   free frag, so here we only need orig_size-f->size for real used */
-		qm->real_used-=(orig_size-f->size);
-		qm->used-=(orig_size-f->size);
 	}else if (f->size<size){
 		/* grow */
 #ifdef DBG_F_MALLOC
@@ -723,8 +720,6 @@ void* fm_realloc(struct fm_block* qm, void* p, unsigned long size)
 				fm_split_frag(qm, f, size);
 		#endif
 			}
-			qm->real_used+=(f->size-orig_size);
-			qm->used+=(f->size-orig_size);
 		}else{
 			/* could not join => realloc */
 	#ifdef DBG_F_MALLOC




More information about the sr-dev mailing list