X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fcrawl_folders.c;h=71646162b0f2934bc856ab2ddc78a5f16440d30c;hp=0185bd8344290966a7d8b63611693adf8e9c9491;hb=ee8d01d64e8832304256de53db07228e2be67f6a;hpb=d3ba09a465cb0e5fc9a74d0b152a7ed965f895cb diff --git a/sbr/crawl_folders.c b/sbr/crawl_folders.c index 0185bd8..7164616 100644 --- a/sbr/crawl_folders.c +++ b/sbr/crawl_folders.c @@ -9,11 +9,13 @@ #include #include #include +#include +#include struct crawl_context { int max; /* - ** how many folders we currently can hold in the array - ** `folders', increased by CRAWL_NUMFOLDERS at a time + ** number of folders we can hold in the folders array; + ** increased by CRAWL_NUMFOLDERS at a time */ int total; /* how many `folders' actually has */ char **folders; /* the array of folders */ @@ -29,7 +31,7 @@ struct crawl_context { static void add_folder(char *fold, struct crawl_context *crawl) { - register int i, j; + int i, j; /* if necessary, reallocate the space for folder names */ if (crawl->foldp >= crawl->max) { @@ -66,7 +68,7 @@ add_children(char *name, struct crawl_context *crawl) } if (strcmp(name, ".") == 0) { - prefix = getcpy(""); + prefix = mh_xstrdup(""); } else { prefix = concat(name, "/", (void *)NULL); } @@ -100,12 +102,12 @@ add_children(char *name, struct crawl_context *crawl) /* add_folder saves child in the list, don't free it */ add_folder(child, crawl); } else { - free(child); + mh_free0(&child); } } closedir(dd); - free(prefix); + mh_free0(&prefix); } static void @@ -140,10 +142,10 @@ crawl_folders_body(struct crawl_context *crawl, char *dir, void crawl_folders(char *dir, crawl_callback_t *callback, void *baton) { - struct crawl_context *crawl = mh_xmalloc(sizeof(*crawl)); + struct crawl_context *crawl = mh_xcalloc(1, sizeof(*crawl)); crawl->max = CRAWL_NUMFOLDERS; crawl->total = crawl->start = crawl->foldp = 0; - crawl->folders = mh_xmalloc(crawl->max * sizeof(*crawl->folders)); + crawl->folders = mh_xcalloc(crawl->max, sizeof(*crawl->folders)); crawl_folders_body(crawl, dir, callback, baton); @@ -151,6 +153,6 @@ crawl_folders(char *dir, crawl_callback_t *callback, void *baton) ** Note that we "leak" the folder names, on the assumption that the ** caller is using them. */ - free(crawl->folders); - free(crawl); + mh_free0(&(crawl->folders)); + mh_free0(&crawl); }