diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/fifo.zig | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/std/fifo.zig b/lib/std/fifo.zig index bb9d1b2a1d..0b1b881613 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]; } } |
