From e622ff624ff28a35be8852451d21cb9491c845d4 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 4 Oct 2010 17:16:38 +0100 Subject: [PATCH] priority queue: Set item's idx value to invalid when it's removed from queue. This should assert-crash on double-removes more reliably. --- src/lib/priorityq.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/priorityq.c b/src/lib/priorityq.c index 7cd297700d..37263ffd25 100644 --- a/src/lib/priorityq.c +++ b/src/lib/priorityq.c @@ -136,6 +136,7 @@ static void priorityq_remove_idx(struct priorityq *pq, unsigned int idx) void priorityq_remove(struct priorityq *pq, struct priorityq_item *item) { priorityq_remove_idx(pq, item->idx); + item->idx = -1U; } struct priorityq_item *priorityq_peek(struct priorityq *pq) @@ -154,8 +155,10 @@ struct priorityq_item *priorityq_pop(struct priorityq *pq) struct priorityq_item *item; item = priorityq_peek(pq); - if (item != NULL) + if (item != NULL) { priorityq_remove_idx(pq, 0); + item->idx = -1U; + } return item; } -- 2.47.3