diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2002-11-19 14:04:24 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2002-11-19 14:04:24 +0000 |
commit | 6ed28e0a60638e6f4d744487c8745cb9fb4aaca7 (patch) | |
tree | c85e9e8a50f0f27f231e58be7197c1c39fda3122 | |
parent | 7c671ef48cdf35473aa7713d8f32215417e2311e (diff) | |
download | mailutils-6ed28e0a60638e6f4d744487c8745cb9fb4aaca7.tar.gz mailutils-6ed28e0a60638e6f4d744487c8745cb9fb4aaca7.tar.bz2 |
(sieve_slist_destroy): Use list_do. It is faster.
-rw-r--r-- | libsieve/util.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/libsieve/util.c b/libsieve/util.c index d6530ff01..8f391ec5a 100644 --- a/libsieve/util.c +++ b/libsieve/util.c @@ -100,21 +100,19 @@ sieve_pfree (list_t *pool, void *ptr) free (ptr); } +static int +_destroy_item (void *item, void *data) +{ + free (item); + return 0; +} + void sieve_slist_destroy (list_t *plist) { - iterator_t itr; - - if (!plist || iterator_create (&itr, *plist)) + if (!plist) return; - - for (iterator_first (itr); !iterator_is_done (itr); iterator_next (itr)) - { - char *s; - iterator_current (itr, (void **)&s); - free (s); - } - iterator_destroy (&itr); + list_do (*plist, _destroy_item, NULL); list_destroy (plist); } @@ -231,7 +229,7 @@ _sieve_default_parse_error (void *unused, const char *filename, int lineno, const char *fmt, va_list ap) { if (filename) - fprintf (stderr, "%s:%d: ", filename, lineno); + fprintf (stderr, "%s:%d: ", filename, lineno); vfprintf (stderr, fmt, ap); fprintf (stderr, "\n"); return 0; |