From fee9135fb414de2d2bd6308d43aa0a57bd609430 Mon Sep 17 00:00:00 2001 From: xtaci Date: Sun, 8 Jun 2025 12:15:44 +0800 Subject: [PATCH] fix iteration in ring --- ringbuffer.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ringbuffer.go b/ringbuffer.go index 69d7304..6bca466 100644 --- a/ringbuffer.go +++ b/ringbuffer.go @@ -102,12 +102,12 @@ func (r *RingBuffer[T]) ForEach(fn func(*T) bool) { // Wrapped data: [head ... end) + [0 ... tail) for i := r.head; i < len(r.elements); i++ { if !fn(&r.elements[i]) { - break // Stop iteration if function returns false + return } } for i := 0; i < r.tail; i++ { if !fn(&r.elements[i]) { - break // Stop iteration if function returns false + return } } } @@ -131,12 +131,12 @@ func (r *RingBuffer[T]) ForEachReverse(fn func(*T) bool) { } else { for i := r.tail - 1; i >= 0; i-- { if !fn(&r.elements[i]) { - break // Stop iteration if function returns false + return } } for i := len(r.elements) - 1; i >= r.head; i-- { if !fn(&r.elements[i]) { - break // Stop iteration if function returns false + return } } }