aboutsummaryrefslogtreecommitdiff
path: root/src/fs
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-01-28 21:25:31 +0000
committerChristian Grothoff <christian@grothoff.org>2012-01-28 21:25:31 +0000
commited7850f90dc664ff96c4a24b5552d5704f8c205e (patch)
treee7e658565d7ede8dc42cba09f63c98168f8f7adf /src/fs
parent6535dad120517e6572f93ffc28b800801bf2781d (diff)
downloadgnunet-ed7850f90dc664ff96c4a24b5552d5704f8c205e.tar.gz
gnunet-ed7850f90dc664ff96c4a24b5552d5704f8c205e.zip
-implement tree freeing
Diffstat (limited to 'src/fs')
-rw-r--r--src/fs/fs_sharetree.c24
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 */
413void
414GNUNET_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