diff --git a/src/lib/circular_buffer.c b/src/lib/circular_buffer.c index 5bd837e1..ce9d0a64 100644 --- a/src/lib/circular_buffer.c +++ b/src/lib/circular_buffer.c @@ -74,8 +74,8 @@ bool circular_buffer_get(const CircularBuffer *cb, size_t i, void *item) { return true; } -bool circular_buffer_pop(CircularBuffer *cb, size_t i, void *item) { - if (!circular_buffer_get(cb, i, item)) { +bool circular_buffer_pop(CircularBuffer *cb, void *item) { + if (!circular_buffer_get(cb, 0, item)) { return false; } @@ -96,7 +96,7 @@ void circular_buffer_iterate( size_t i = cb->tail; do { - callback(&cb->buffer[i], data); + callback(cb->buffer + i * cb->item_size, data); increment(cb, &i); } while (i != cb->head); } diff --git a/src/lib/circular_buffer.h b/src/lib/circular_buffer.h index df5c5529..af3a710c 100644 --- a/src/lib/circular_buffer.h +++ b/src/lib/circular_buffer.h @@ -53,11 +53,10 @@ void circular_buffer_push(CircularBuffer *cb, const void *item); bool circular_buffer_get(const CircularBuffer *cb, size_t i, void *item); /** - * Pops an item at index i (a position relative to the current tail) from the - * buffer. If there's no item at that index, leaves item unchanged and returns - * false, otherwise returns true. + * Pops the item at the tail of the buffer. If the buffer is empty, leaves item + * unchanged and returns false, otherwise returns true. */ -bool circular_buffer_pop(CircularBuffer *cb, size_t i, void *item); +bool circular_buffer_pop(CircularBuffer *cb, void *item); /** * Iterates over the buffer, calling the callback function on each item.