diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/e_ringbuffer.c | 8 | ||||
| -rw-r--r-- | src/engine/e_ringbuffer.h | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/engine/e_ringbuffer.c b/src/engine/e_ringbuffer.c index f6f529f8..9ece9b98 100644 --- a/src/engine/e_ringbuffer.c +++ b/src/engine/e_ringbuffer.c @@ -206,9 +206,11 @@ void *ringbuf_item_ptr(void *p) return ((RBITEM *)p) - 1; } -void *ringbuf_first(RINGBUFFER *rb) -{ - return ringbuf_next(rb, rb->last_alloc+1); +void *ringbuf_first(RINGBUFFER *rb) +{ + if(rb->last_alloc && rb->last_alloc->next) + return ringbuf_next(rb, rb->last_alloc->next+1); + return 0x0; } void *ringbuf_last(RINGBUFFER *rb) diff --git a/src/engine/e_ringbuffer.h b/src/engine/e_ringbuffer.h index 9c2ce9c3..7de5b01e 100644 --- a/src/engine/e_ringbuffer.h +++ b/src/engine/e_ringbuffer.h @@ -1,3 +1,5 @@ +#ifndef _RINGBUFFER_H +#define _RINGBUFFER_H typedef struct { @@ -20,3 +22,5 @@ void *ringbuf_prev(RINGBUFFER *rb, void *current); void *ringbuf_next(RINGBUFFER *rb, void *current); void *ringbuf_first(RINGBUFFER *rb); void *ringbuf_last(RINGBUFFER *rb); + +#endif |