From 30ef430cdbf14c326fe72918fc48153fa005a41c Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Mon, 12 Apr 2010 18:04:31 +0200 Subject: [PATCH] chunk queue: Fix chunk dequeuing. We missed to update the number of pending bytes when removing a chunk from the queue. This patch also clarifies the description of the cq parameter of cq_dequeue(). Thanks to Gerrit Renker who pointed out this bug. --- chunk_queue.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/chunk_queue.c b/chunk_queue.c index fa317185..d295b6c0 100644 --- a/chunk_queue.c +++ b/chunk_queue.c @@ -80,12 +80,14 @@ struct queued_chunk *cq_peek(struct chunk_queue *cq) /** * Remove the current chunk from the queue. * - * \param cq The chunk to remove. + * \param cq The queue to remove from. */ void cq_dequeue(struct chunk_queue *cq) { struct queued_chunk *qc = cq_peek(cq); assert(qc); + assert(cq->num_pending >= qc->num_bytes); + cq->num_pending -= qc->num_bytes; list_del(&qc->node); free(qc); } -- 2.39.2