From 6261c1373168b265047db5704d9d0fd5f2e458f2 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 26 Apr 2023 13:57:08 -0700 Subject: update codebase to use `@memset` and `@memcpy` --- lib/std/fifo.zig | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'lib/std/fifo.zig') diff --git a/lib/std/fifo.zig b/lib/std/fifo.zig index a6736e41a7..0861e19d14 100644 --- a/lib/std/fifo.zig +++ b/lib/std/fifo.zig @@ -86,19 +86,17 @@ pub fn LinearFifo( pub fn realign(self: *Self) void { if (self.buf.len - self.head >= self.count) { - // this copy overlaps - mem.copy(T, self.buf[0..self.count], self.buf[self.head..][0..self.count]); + mem.copyForwards(T, self.buf[0..self.count], self.buf[self.head..][0..self.count]); self.head = 0; } else { var tmp: [mem.page_size / 2 / @sizeOf(T)]T = undefined; while (self.head != 0) { - const n = math.min(self.head, tmp.len); + const n = @min(self.head, tmp.len); const m = self.buf.len - n; - mem.copy(T, tmp[0..n], self.buf[0..n]); - // this middle copy overlaps; the others here don't - mem.copy(T, self.buf[0..m], self.buf[n..][0..m]); - mem.copy(T, self.buf[m..], tmp[0..n]); + @memcpy(tmp[0..n], self.buf[0..n]); + mem.copyForwards(T, self.buf[0..m], self.buf[n..][0..m]); + @memcpy(self.buf[m..][0..n], tmp[0..n]); self.head -= n; } } @@ -223,8 +221,8 @@ pub fn LinearFifo( while (dst_left.len > 0) { const slice = self.readableSlice(0); if (slice.len == 0) break; - const n = math.min(slice.len, dst_left.len); - mem.copy(T, dst_left, slice[0..n]); + const n = @min(slice.len, dst_left.len); + @memcpy(dst_left[0..n], slice[0..n]); self.discard(n); dst_left = dst_left[n..]; } @@ -289,8 +287,8 @@ pub fn LinearFifo( while (src_left.len > 0) { const writable_slice = self.writableSlice(0); assert(writable_slice.len != 0); - const n = math.min(writable_slice.len, src_left.len); - mem.copy(T, writable_slice, src_left[0..n]); + const n = @min(writable_slice.len, src_left.len); + @memcpy(writable_slice[0..n], src_left[0..n]); self.update(n); src_left = src_left[n..]; } @@ -354,11 +352,11 @@ pub fn LinearFifo( const slice = self.readableSliceMut(0); if (src.len < slice.len) { - mem.copy(T, slice, src); + @memcpy(slice[0..src.len], src); } else { - mem.copy(T, slice, src[0..slice.len]); + @memcpy(slice, src[0..slice.len]); const slice2 = self.readableSliceMut(slice.len); - mem.copy(T, slice2, src[slice.len..]); + @memcpy(slice2[0 .. src.len - slice.len], src[slice.len..]); } } -- cgit v1.2.3