X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..f0beecb5ab89a3e2e2913919f304b1dcdee53a66:/sbr/folder_free.c diff --git a/sbr/folder_free.c b/sbr/folder_free.c index 1c1051de..cad86dad 100644 --- a/sbr/folder_free.c +++ b/sbr/folder_free.c @@ -2,7 +2,9 @@ /* * folder_free.c -- free a folder/message structure * - * $Id$ + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ #include @@ -11,7 +13,8 @@ void folder_free (struct msgs *mp) { - int i; + size_t i; + bvector_t *v; if (!mp) return; @@ -20,9 +23,23 @@ folder_free (struct msgs *mp) free (mp->foldpath); /* free the sequence names */ - for (i = 0; mp->msgattrs[i]; i++) - free (mp->msgattrs[i]); + for (i = 0; i < svector_size (mp->msgattrs); i++) + free (svector_at (mp->msgattrs, i)); + svector_free (mp->msgattrs); - free (mp->msgstats); /* free message status area */ + for (i = 0, v = mp->msgstats; i < mp->num_msgstats; ++i, ++v) { + bvector_free (*v); + } + free (mp->msgstats); + + /* Close/free the sequence file if it is open */ + + if (mp->seqhandle) + lkfclosedata (mp->seqhandle, mp->seqname); + + if (mp->seqname) + free (mp->seqname); + + bvector_free (mp->attrstats); free (mp); /* free main folder structure */ }