From 944273ebcc6beca0a0fd913f785c0c7be0557dce Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 17 Nov 2014 16:29:29 +0200 Subject: [PATCH] shared/queue: Make queue_destroy safe This makes queue_destroy and queue_remove_all safe even if destroy callback end up calling queue_remove. --- src/shared/queue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shared/queue.c b/src/shared/queue.c index db4a224da..5329a8017 100644 --- a/src/shared/queue.c +++ b/src/shared/queue.c @@ -327,6 +327,10 @@ unsigned int queue_remove_all(struct queue *queue, queue_match_func_t function, queue->entries -= count; } else { + queue->head = NULL; + queue->tail = NULL; + queue->entries = 0; + while (entry) { struct queue_entry *tmp = entry; @@ -338,10 +342,6 @@ unsigned int queue_remove_all(struct queue *queue, queue_match_func_t function, free(tmp); count++; } - - queue->head = NULL; - queue->tail = NULL; - queue->entries = 0; } return count; -- 2.47.3