diff options
author | David Robillard <d@drobilla.net> | 2011-09-05 16:58:00 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-09-05 16:58:00 +0000 |
commit | 7f70df52fafb1bbb01926ef0732f80aeb3ef90c2 (patch) | |
tree | b96032eccf0e9856528b7dad01e7250537cbf9c8 /src | |
parent | bef5da42d9f102b898d26c84f4c47ac1b8f3ad6b (diff) | |
download | zix-7f70df52fafb1bbb01926ef0732f80aeb3ef90c2.tar.gz zix-7f70df52fafb1bbb01926ef0732f80aeb3ef90c2.tar.bz2 zix-7f70df52fafb1bbb01926ef0732f80aeb3ef90c2.zip |
Fix memory leaks
git-svn-id: http://svn.drobilla.net/zix/trunk@4 df6676b4-ccc9-40e5-b5d6-7c4628a128e3
Diffstat (limited to 'src')
-rw-r--r-- | src/tree.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -553,10 +553,10 @@ ZIX_API int zix_tree_remove(ZixTree* t, ZixTreeIter ti) { - ZixTreeNode* n = ti; - ZixTreeNode** pp = NULL; // parent pointer - ZixTreeNode* to_balance = n->parent; // lowest node to start rebalace at - int8_t d_balance = 0; // delta(balance) for n->parent + ZixTreeNode* const n = ti; + ZixTreeNode** pp = NULL; // parent pointer + ZixTreeNode* to_balance = n->parent; // lowest node to start rebalace at + int8_t d_balance = 0; // delta(balance) for n->parent #ifdef ZIX_TREE_DUMP printf("*** REMOVE %ld\n", (intptr_t)n->data); @@ -564,6 +564,7 @@ zix_tree_remove(ZixTree* t, ZixTreeIter ti) if ((n == t->root) && !n->left && !n->right) { t->root = NULL; + free(n); return ZIX_STATUS_SUCCESS; } @@ -687,6 +688,8 @@ zix_tree_remove(ZixTree* t, ZixTreeIter ti) DUMP(t); + free(n); + #ifdef ZIX_TREE_VERIFY if (!verify(t, t->root)) { return ZIX_STATUS_ERROR; |