mirror of
https://github.com/xtaci/kcp-go.git
synced 2026-10-21 03:54:46 +00:00
fix iteration in ring
This commit is contained in:
+4
-4
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user