From e492f15f3eb96f2f9f599add2c3167a487e75822 Mon Sep 17 00:00:00 2001 From: Pavel Levshin Date: Mon, 28 Oct 2013 18:11:52 +0400 Subject: [PATCH] Remove two memory leaks --- src/tagbucket.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tagbucket.c b/src/tagbucket.c index f725912..6eb232e 100644 --- a/src/tagbucket.c +++ b/src/tagbucket.c @@ -72,13 +72,18 @@ void ee_deleteTagbucket(struct ee_tagbucket *tagbucket) { int currRefCount; + struct ee_tagbucket_listnode *node, *nextnode; // TODO: use atomic instructions for reference counting! assert(tagbucket->objID == ObjID_TAGBUCKET); - currRefCount = tagbucket->refCount--; + currRefCount = --tagbucket->refCount; if(currRefCount == 0) { tagbucket->objID = ObjID_DELETED; - // TODO: free list (memleak) + for(node = tagbucket->root; node != NULL; node = nextnode) { + nextnode = node->next; + es_deleteStr(node->name); + free(node); + } free(tagbucket); } }