Browse Source

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

Fix off-by-one in queue `back` and `back_ptr` procs
Jeroen van Rijn 1 year ago
parent
commit
76b0562acd
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/container/queue/queue.odin

+ 2 - 2
core/container/queue/queue.odin

@@ -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]
 }
 }