From be33e56abccb9459419ffa5376774332c06b517d Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Sun, 3 Feb 2008 23:57:03 +0000 Subject: fixed so that the newest element is returned with ringbuf_next aswell --- src/engine/e_ringbuffer.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/engine') diff --git a/src/engine/e_ringbuffer.c b/src/engine/e_ringbuffer.c index 512c5946..f6f529f8 100644 --- a/src/engine/e_ringbuffer.c +++ b/src/engine/e_ringbuffer.c @@ -184,6 +184,11 @@ void *ringbuf_prev(RINGBUFFER *rb, void *current) void *ringbuf_next(RINGBUFFER *rb, void *current) { RBITEM *item = ((RBITEM *)current) - 1; + + /* we have gone around */ + if(item == rb->last_alloc) + return 0; + while(1) { /* back up one step */ @@ -191,10 +196,6 @@ void *ringbuf_next(RINGBUFFER *rb, void *current) if(!item) item = rb->first; - /* we have gone around */ - if(item == rb->last_alloc) - return 0; - if(!(item->flags&RBFLAG_FREE)) return item+1; } -- cgit 1.4.1