From 518e067814b2c685f18c8ff576a2fda90f36cabb Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 20 Oct 2005 22:34:07 +0000
Subject: [PATCH] ringbuf_full() was begging to be a macro.

---
 src/sbbs3/ringbuf.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/src/sbbs3/ringbuf.c b/src/sbbs3/ringbuf.c
index 220273d717..247ad9b36b 100644
--- a/src/sbbs3/ringbuf.c
+++ b/src/sbbs3/ringbuf.c
@@ -126,14 +126,8 @@ void RINGBUFCALL RingBufDispose( RingBuf* rb)
 	memset(rb,0,sizeof(RingBuf));
 }
 
-/* Non-mutex-protected (standard pthread mutexes are non-recursive) */
-static DWORD ringbuf_full(RingBuf* rb)
-{
-	if(rb->pHead >= rb->pTail)
-		return(rb->pHead - rb->pTail);
-
-	return(rb->size - (rb->pTail - (rb->pHead + 1)));
-}
+#define RINGBUF_FILL_LEVEL(rb)	(rb->pHead >= rb->pTail ? (rb->pHead - rb->pTail) \
+								: (rb->size - (rb->pTail - (rb->pHead + 1))))
 
 DWORD RINGBUFCALL RingBufFull( RingBuf* rb )
 {
@@ -143,7 +137,7 @@ DWORD RINGBUFCALL RingBufFull( RingBuf* rb )
 	pthread_mutex_lock(&rb->mutex);
 #endif
 
-	retval = ringbuf_full(rb);
+	retval = RINGBUF_FILL_LEVEL(rb);
 
 #ifdef RINGBUF_EVENT
 	if(rb->empty_event!=NULL) {
@@ -213,7 +207,7 @@ DWORD RINGBUFCALL RingBufWrite( RingBuf* rb, BYTE* src,  DWORD cnt )
 
 #ifdef RINGBUF_SEM
 	sem_post(&rb->sem);
-	if(rb->highwater_mark!=0 && ringbuf_full(rb)>=rb->highwater_mark)
+	if(rb->highwater_mark!=0 && RINGBUF_FILL_LEVEL(rb)>=rb->highwater_mark)
 		sem_post(&rb->highwater_sem);
 #endif
 #ifdef RINGBUF_EVENT
-- 
GitLab