diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-02-03 23:57:03 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-02-03 23:57:03 +0000 |
| commit | be33e56abccb9459419ffa5376774332c06b517d (patch) | |
| tree | 2bc1163ff15c564ee8ca44d816d3b395b163580a | |
| parent | e138d5c76af9b691b25355182d7fde76b3b944d5 (diff) | |
| download | zcatch-be33e56abccb9459419ffa5376774332c06b517d.tar.gz zcatch-be33e56abccb9459419ffa5376774332c06b517d.zip | |
fixed so that the newest element is returned with ringbuf_next aswell
| -rw-r--r-- | src/engine/e_ringbuffer.c | 9 |
1 files changed, 5 insertions, 4 deletions
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; } |