diff --git a/src/queue.c b/src/queue.c index b28e9a1..4c58633 100644 --- a/src/queue.c +++ b/src/queue.c @@ -85,6 +85,10 @@ int skipstone_queue_remove(skipstone_queue *queue, void **value) { queue->first = first->next; queue->count--; + if (queue->count == 0) { + queue->last = NULL; + } + free(first); return 1; diff --git a/src/queue.c-e b/src/queue.c-e index b28e9a1..4c58633 100644 --- a/src/queue.c-e +++ b/src/queue.c-e @@ -85,6 +85,10 @@ int skipstone_queue_remove(skipstone_queue *queue, void **value) { queue->first = first->next; queue->count--; + if (queue->count == 0) { + queue->last = NULL; + } + free(first); return 1;