diff --git a/lib/std/fifo.zig b/lib/std/fifo.zig index bb9d1b2a1de732440fb664ebe7af11a706a9849b..0b1b881613a98afc26d47bb7436ca0a8d42e80a0 100644 --- a/lib/std/fifo.zig +++ b/lib/std/fifo.zig @@ -145,16 +145,13 @@ pub fn LinearFifo( fn readableSliceMut(self: SliceSelfArg, offset: usize) []T { if (offset > self.count) return [_]T{}; - const start = self.head + offset; + var start = self.head + offset; if (start >= self.buf.len) { - return self.buf[start - self.buf.len ..][0 .. self.count - offset]; + start -= self.buf.len; + return self.buf[start..self.count - offset]; } else { - const end: usize = self.head + self.count; - if (end >= self.buf.len) { - return self.buf[start..self.buf.len]; - } else { - return self.buf[start..end]; - } + const end = math.min(self.head + self.count, self.buf.len); + return self.buf[start..end]; } }