X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6c42153ad9362cc676ea66563bf400d7511b3b68..f0beecb5ab89a3e2e2913919f304b1dcdee53a66:/sbr/folder_free.c diff --git a/sbr/folder_free.c b/sbr/folder_free.c index f06bbf5c..cad86dad 100644 --- a/sbr/folder_free.c +++ b/sbr/folder_free.c @@ -2,8 +2,6 @@ /* * 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. @@ -15,7 +13,8 @@ void folder_free (struct msgs *mp) { - int i; + size_t i; + bvector_t *v; if (!mp) return; @@ -24,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); + + 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); - free (mp->msgstats); /* free message status area */ + bvector_free (mp->attrstats); free (mp); /* free main folder structure */ }