about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/engine/e_ringbuffer.c9
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;
 	}