diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-04-29 00:19:55 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-29 00:19:55 -0700 |
| commit | d65b42e07caa00dfe2f2fbf221c593ce57882784 (patch) | |
| tree | 7926cbea1499e0affe930bf6d7455dc24adf014e /lib/std/segmented_list.zig | |
| parent | fd6200eda6d4fe19c34a59430a88a9ce38d6d7a4 (diff) | |
| parent | fa200ca0cad2705bad40eb723dedf4e3bf11f2ff (diff) | |
| download | zig-d65b42e07caa00dfe2f2fbf221c593ce57882784.tar.gz zig-d65b42e07caa00dfe2f2fbf221c593ce57882784.zip | |
Merge pull request #15481 from ziglang/use-mem-intrinsics
actually use the new memory intrinsics
Diffstat (limited to 'lib/std/segmented_list.zig')
| -rw-r--r-- | lib/std/segmented_list.zig | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/lib/std/segmented_list.zig b/lib/std/segmented_list.zig index 7c0a27b5b7..172fe4e7c3 100644 --- a/lib/std/segmented_list.zig +++ b/lib/std/segmented_list.zig @@ -230,7 +230,7 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type allocator.free(new_dynamic_segments); } else { // Good thing we allocated that new memory slice. - mem.copy([*]T, new_dynamic_segments, self.dynamic_segments[0..new_cap_shelf_count]); + @memcpy(new_dynamic_segments, self.dynamic_segments[0..new_cap_shelf_count]); allocator.free(self.dynamic_segments); self.dynamic_segments = new_dynamic_segments; } @@ -248,24 +248,21 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type var i = start; if (end <= prealloc_item_count) { - mem.copy(T, dest[i - start ..], self.prealloc_segment[i..end]); + const src = self.prealloc_segment[i..end]; + @memcpy(dest[i - start ..][0..src.len], src); return; } else if (i < prealloc_item_count) { - mem.copy(T, dest[i - start ..], self.prealloc_segment[i..]); + const src = self.prealloc_segment[i..]; + @memcpy(dest[i - start ..][0..src.len], src); i = prealloc_item_count; } while (i < end) { const shelf_index = shelfIndex(i); const copy_start = boxIndex(i, shelf_index); - const copy_end = std.math.min(shelfSize(shelf_index), copy_start + end - i); - - mem.copy( - T, - dest[i - start ..], - self.dynamic_segments[shelf_index][copy_start..copy_end], - ); - + const copy_end = @min(shelfSize(shelf_index), copy_start + end - i); + const src = self.dynamic_segments[shelf_index][copy_start..copy_end]; + @memcpy(dest[i - start ..][0..src.len], src); i += (copy_end - copy_start); } } @@ -498,11 +495,11 @@ fn testSegmentedList(comptime prealloc: usize) !void { control[@intCast(usize, i)] = i + 1; } - mem.set(i32, dest[0..], 0); + @memset(dest[0..], 0); list.writeToSlice(dest[0..], 0); try testing.expect(mem.eql(i32, control[0..], dest[0..])); - mem.set(i32, dest[0..], 0); + @memset(dest[0..], 0); list.writeToSlice(dest[50..], 50); try testing.expect(mem.eql(i32, control[50..], dest[50..])); } |
