X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/5dd6771b28c257af405d7248639ed0e3bcdce38b..94187a80bd60baab4b9c4b949ad820d730578123:/sbr/folder_free.c diff --git a/sbr/folder_free.c b/sbr/folder_free.c index ebb58ab4..7c6267f6 100644 --- a/sbr/folder_free.c +++ b/sbr/folder_free.c @@ -1,6 +1,4 @@ - -/* - * folder_free.c -- free a folder/message structure +/* folder_free.c -- free a folder/message structure * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -8,23 +6,38 @@ */ #include +#include +#include "lock_file.h" void folder_free (struct msgs *mp) { - int i; + size_t i; + struct bvector *v; if (!mp) return; - if (mp->foldpath) - free (mp->foldpath); + 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_fini(v); + } + free (mp->msgstats); + + /* Close/free the sequence file if it is open */ + + if (mp->seqhandle) + lkfclosedata (mp->seqhandle, mp->seqname); + + free(mp->seqname); - free (mp->msgstats); /* free message status area */ + bvector_free (mp->attrstats); free (mp); /* free main folder structure */ }