From 6ed28e0a60638e6f4d744487c8745cb9fb4aaca7 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Tue, 19 Nov 2002 14:04:24 +0000 Subject: (sieve_slist_destroy): Use list_do. It is faster. --- libsieve/util.c | 22 ++++++++++------------ 1 file 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; -- cgit v1.2.1