X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6b4bc4a25eaac2eddd1bef51e3f00c21f98ed32d..4e8e2c96547bfe72589982a85fac450df4cf6d08:/sbr/folder_free.c diff --git a/sbr/folder_free.c b/sbr/folder_free.c index 7f87ccd4..3efbcefc 100644 --- a/sbr/folder_free.c +++ b/sbr/folder_free.c @@ -8,31 +8,37 @@ */ #include +#include void folder_free (struct msgs *mp) { - int i; + size_t i; + bvector_t *v; if (!mp) return; - if (mp->foldpath) - free (mp->foldpath); + mh_xfree(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); + mh_xfree(mp->seqname); - free (mp->msgstats); /* free message status area */ + bvector_free (mp->attrstats); free (mp); /* free main folder structure */ }