about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/e_ringbuffer.c8
-rw-r--r--src/engine/e_ringbuffer.h4
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