aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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