Skip to content

Commit 6f54568

Browse files
committed
std: replace various mem copies with @memmove
1 parent 82961a8 commit 6f54568

File tree

5 files changed

+16
-26
lines changed

5 files changed

+16
-26
lines changed

lib/std/Progress.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
};

0 commit comments

Comments
 (0)