authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-04 23:14:54-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-05 09:56:02-07:00
log6f545683f3d53917df816ca6cd5c9c20474071f3
tree1ad7438ccb144ea3739cfb452027150e322494ea
parent82961a8c9f66c03b7f1a802d2d47d26bf0af7dca

std: replace various mem copies with `@memmove`


5 files changed, 16 insertions(+), 26 deletions(-)

lib/std/Progress.zig+1-1
......@@ -1006,7 +1006,7 @@ fn serializeIpc(start_serialized_len: usize, serialized_buffer: *Serialized.Buff
10061006 continue;
10071007 }
10081008 const src = pipe_buf[m.remaining_read_trash_bytes..n];
1009 std.mem.copyForwards(u8, &pipe_buf, src);
1009 @memmove(pipe_buf[0..src.len], src);
10101010 m.remaining_read_trash_bytes = 0;
10111011 bytes_read = src.len;
10121012 continue;
lib/std/array_list.zig+6-9
......@@ -158,7 +158,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) ty
158158 assert(self.items.len < self.capacity);
159159 self.items.len += 1;
160160
161 mem.copyBackwards(T, self.items[i + 1 .. self.items.len], self.items[i .. self.items.len - 1]);
161 @memmove(self.items[i + 1 .. self.items.len], self.items[i .. self.items.len - 1]);
162162 self.items[i] = item;
163163 }
164164
......@@ -216,7 +216,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) ty
216216 assert(self.capacity >= new_len);
217217 const to_move = self.items[index..];
218218 self.items.len = new_len;
219 mem.copyBackwards(T, self.items[index + count ..], to_move);
219 @memmove(self.items[index + count ..][0..to_move.len], to_move);
220220 const result = self.items[index..][0..count];
221221 @memset(result, undefined);
222222 return result;
......@@ -746,7 +746,7 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?mem.Alig
746746 assert(self.items.len < self.capacity);
747747 self.items.len += 1;
748748
749 mem.copyBackwards(T, self.items[i + 1 .. self.items.len], self.items[i .. self.items.len - 1]);
749 @memmove(self.items[i + 1 .. self.items.len], self.items[i .. self.items.len - 1]);
750750 self.items[i] = item;
751751 }
752752
......@@ -782,7 +782,7 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?mem.Alig
782782 assert(self.capacity >= new_len);
783783 const to_move = self.items[index..];
784784 self.items.len = new_len;
785 mem.copyBackwards(T, self.items[index + count ..], to_move);
785 @memmove(self.items[index + count ..][0..to_move.len], to_move);
786786 const result = self.items[index..][0..count];
787787 @memset(result, undefined);
788788 return result;
......@@ -848,11 +848,8 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?mem.Alig
848848 } else {
849849 const extra = range.len - new_items.len;
850850 @memcpy(range[0..new_items.len], new_items);
851 std.mem.copyForwards(
852 T,
853 self.items[after_range - extra ..],
854 self.items[after_range..],
855 );
851 const src = self.items[after_range..];
852 @memmove(self.items[after_range - extra ..][0..src.len], src);
856853 @memset(self.items[self.items.len - extra ..], undefined);
857854 self.items.len -= extra;
858855 }
lib/std/math/big/int.zig+3-5
......@@ -1710,7 +1710,7 @@ pub const Mutable = struct {
17101710
17111711 if (xy_trailing != 0 and r.limbs[r.len - 1] != 0) {
17121712 // Manually shift here since we know its limb aligned.
1713 mem.copyBackwards(Limb, r.limbs[xy_trailing..], r.limbs[0..r.len]);
1713 @memmove(r.limbs[xy_trailing..][0..r.len], r.limbs[0..r.len]);
17141714 @memset(r.limbs[0..xy_trailing], 0);
17151715 r.len += xy_trailing;
17161716 }
......@@ -3836,8 +3836,7 @@ fn llshl(r: []Limb, a: []const Limb, shift: usize) usize {
38363836 std.debug.assert(@intFromPtr(r.ptr) >= @intFromPtr(a.ptr));
38373837
38383838 if (shift == 0) {
3839 if (a.ptr != r.ptr)
3840 std.mem.copyBackwards(Limb, r[0..a.len], a);
3839 if (a.ptr != r.ptr) @memmove(r[0..a.len], a);
38413840 return a.len;
38423841 }
38433842 if (shift >= limb_bits) {
......@@ -3891,8 +3890,7 @@ fn llshr(r: []Limb, a: []const Limb, shift: usize) usize {
38913890 if (shift == 0) {
38923891 std.debug.assert(r.len >= a.len);
38933892
3894 if (a.ptr != r.ptr)
3895 std.mem.copyForwards(Limb, r[0..a.len], a);
3893 if (a.ptr != r.ptr) @memmove(r[0..a.len], a);
38963894 return a.len;
38973895 }
38983896 if (shift >= limb_bits) {
lib/std/os/windows.zig+3-8
......@@ -1332,7 +1332,7 @@ pub fn GetFinalPathNameByHandle(
13321332 // dropping the \Device\Mup\ and making sure the path begins with \\
13331333 if (mem.eql(u16, device_name_u16, std.unicode.utf8ToUtf16LeStringLiteral("Mup"))) {
13341334 out_buffer[0] = '\\';
1335 mem.copyForwards(u16, out_buffer[1..][0..file_name_u16.len], file_name_u16);
1335 @memmove(out_buffer[1..][0..file_name_u16.len], file_name_u16);
13361336 return out_buffer[0 .. 1 + file_name_u16.len];
13371337 }
13381338
......@@ -1400,7 +1400,7 @@ pub fn GetFinalPathNameByHandle(
14001400 if (out_buffer.len < drive_letter.len + file_name_u16.len) return error.NameTooLong;
14011401
14021402 @memcpy(out_buffer[0..drive_letter.len], drive_letter);
1403 mem.copyForwards(u16, out_buffer[drive_letter.len..][0..file_name_u16.len], file_name_u16);
1403 @memmove(out_buffer[drive_letter.len..][0..file_name_u16.len], file_name_u16);
14041404 const total_len = drive_letter.len + file_name_u16.len;
14051405
14061406 // Validate that DOS does not contain any spurious nul bytes.
......@@ -1449,12 +1449,7 @@ pub fn GetFinalPathNameByHandle(
14491449 // to copy backwards. We also need to do this before copying the volume path because
14501450 // it could overwrite the file_name_u16 memory.
14511451 const file_name_dest = out_buffer[volume_path.len..][0..file_name_u16.len];
1452 const file_name_byte_offset = @intFromPtr(file_name_u16.ptr) - @intFromPtr(out_buffer.ptr);
1453 const file_name_index = file_name_byte_offset / @sizeOf(u16);
1454 if (volume_path.len > file_name_index)
1455 mem.copyBackwards(u16, file_name_dest, file_name_u16)
1456 else
1457 mem.copyForwards(u16, file_name_dest, file_name_u16);
1452 @memmove(file_name_dest, file_name_u16);
14581453 @memcpy(out_buffer[0..volume_path.len], volume_path);
14591454 const total_len = volume_path.len + file_name_u16.len;
14601455
src/Sema.zig+3-3
......@@ -2631,7 +2631,7 @@ fn reparentOwnedErrorMsg(
26312631
26322632 const orig_notes = msg.notes.len;
26332633 msg.notes = try sema.gpa.realloc(msg.notes, orig_notes + 1);
2634 std.mem.copyBackwards(Zcu.ErrorMsg, msg.notes[1..], msg.notes[0..orig_notes]);
2634 @memmove(msg.notes[1..][0..orig_notes], msg.notes[0..orig_notes]);
26352635 msg.notes[0] = .{
26362636 .src_loc = msg.src_loc,
26372637 .msg = msg.msg,
......@@ -14464,8 +14464,8 @@ fn analyzeTupleMul(
1446414464 }
1446514465 }
1446614466 for (0..factor) |i| {
14467 mem.copyForwards(InternPool.Index, types[tuple_len * i ..], types[0..tuple_len]);
14468 mem.copyForwards(InternPool.Index, values[tuple_len * i ..], values[0..tuple_len]);
14467 @memmove(types[tuple_len * i ..][0..tuple_len], types[0..tuple_len]);
14468 @memmove(values[tuple_len * i ..][0..tuple_len], values[0..tuple_len]);
1446914469 }
1447014470 break :rs runtime_src;
1447114471 };