Merge pull request #3923 from laytan/fix-off-by-one-in-queue-back

Fix off-by-one in queue `back` and `back_ptr` procs
This commit is contained in:
Jeroen van Rijn
2024-07-14 16:09:16 +02:00
committed by GitHub
+2 -2
View File
@@ -95,11 +95,11 @@ front_ptr :: proc(q: ^$Q/Queue($T)) -> ^T {
} }
back :: proc(q: ^$Q/Queue($T)) -> T { back :: proc(q: ^$Q/Queue($T)) -> T {
idx := (q.offset+uint(q.len))%builtin.len(q.data) idx := (q.offset+uint(q.len - 1))%builtin.len(q.data)
return q.data[idx] return q.data[idx]
} }
back_ptr :: proc(q: ^$Q/Queue($T)) -> ^T { back_ptr :: proc(q: ^$Q/Queue($T)) -> ^T {
idx := (q.offset+uint(q.len))%builtin.len(q.data) idx := (q.offset+uint(q.len - 1))%builtin.len(q.data)
return &q.data[idx] return &q.data[idx]
} }