| ... | @@ -145,16 +145,13 @@ pub fn LinearFifo( | ... | @@ -145,16 +145,13 @@ pub fn LinearFifo( |
| 145 | fn readableSliceMut(self: SliceSelfArg, offset: usize) []T { | 145 | fn readableSliceMut(self: SliceSelfArg, offset: usize) []T { |
| 146 | if (offset > self.count) return [_]T{}; | 146 | if (offset > self.count) return [_]T{}; |
| 147 | | 147 | |
| 148 | const start = self.head + offset; | 148 | var start = self.head + offset; |
| 149 | if (start >= self.buf.len) { | 149 | if (start >= self.buf.len) { |
| 150 | return self.buf[start - self.buf.len ..][0 .. self.count - offset]; | 150 | start -= self.buf.len; |
| | 151 | return self.buf[start..self.count - offset]; |
| 151 | } else { | 152 | } else { |
| 152 | const end: usize = self.head + self.count; | 153 | const end = math.min(self.head + self.count, self.buf.len); |
| 153 | if (end >= self.buf.len) { | 154 | return self.buf[start..end]; |
| 154 | return self.buf[start..self.buf.len]; | | |
| 155 | } else { | | |
| 156 | return self.buf[start..end]; | | |
| 157 | } | | |
| 158 | } | 155 | } |
| 159 | } | 156 | } |
| 160 | | 157 | |