diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-01-28 21:25:31 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-01-28 21:25:31 +0000 |
commit | ed7850f90dc664ff96c4a24b5552d5704f8c205e (patch) | |
tree | e7e658565d7ede8dc42cba09f63c98168f8f7adf /src/fs | |
parent | 6535dad120517e6572f93ffc28b800801bf2781d (diff) | |
download | gnunet-ed7850f90dc664ff96c4a24b5552d5704f8c205e.tar.gz gnunet-ed7850f90dc664ff96c4a24b5552d5704f8c205e.zip |
-implement tree freeing
Diffstat (limited to 'src/fs')
-rw-r--r-- | src/fs/fs_sharetree.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/fs/fs_sharetree.c b/src/fs/fs_sharetree.c index 864be58bf..396415bc6 100644 --- a/src/fs/fs_sharetree.c +++ b/src/fs/fs_sharetree.c | |||
@@ -404,5 +404,29 @@ GNUNET_FS_share_tree_trim (struct GNUNET_FS_ShareTreeItem *toplevel) | |||
404 | GNUNET_CONTAINER_multihashmap_destroy (tc.metacounter); | 404 | GNUNET_CONTAINER_multihashmap_destroy (tc.metacounter); |
405 | } | 405 | } |
406 | 406 | ||
407 | |||
408 | /** | ||
409 | * Release memory of a share item tree. | ||
410 | * | ||
411 | * @param toplevel toplevel of the tree to be freed | ||
412 | */ | ||
413 | void | ||
414 | GNUNET_FS_share_tree_free (struct GNUNET_FS_ShareTreeItem *toplevel) | ||
415 | { | ||
416 | struct GNUNET_FS_ShareTreeItem *pos; | ||
417 | |||
418 | while (NULL != (pos = toplevel->children_head)) | ||
419 | GNUNET_FS_share_tree_free (pos); | ||
420 | if (NULL != toplevel->parent) | ||
421 | GNUNET_CONTAINER_DLL_remove (toplevel->parent->children_head, | ||
422 | toplevel->parent->children_tail, | ||
423 | toplevel); | ||
424 | GNUNET_CONTAINER_meta_data_destroy (toplevel->meta); | ||
425 | GNUNET_FS_uri_destroy (toplevel->ksk_uri); | ||
426 | GNUNET_free_non_null (toplevel->filename); | ||
427 | GNUNET_free_non_null (toplevel->short_filename); | ||
428 | GNUNET_free (toplevel); | ||
429 | } | ||
430 | |||
407 | /* end fs_sharetree.c */ | 431 | /* end fs_sharetree.c */ |
408 | 432 | ||