Explorar o código

Fix off-by-one in queue `back` and `back_ptr` procs

Laytan Laats hai 1 ano
pai
achega
d90d7ed002
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  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 {
-	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]
 }
 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]
 }