From 6ebeb85abdca74c70d59b5f4f5ceea0acd77a108 Mon Sep 17 00:00:00 2001 From: xdBronch <51252236+xdBronch@users.noreply.github.com> Date: Sun, 10 Dec 2023 13:56:39 -0500 Subject: [PATCH] speed up sliceTo when end == sentinel --- lib/std/mem.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/std/mem.zig b/lib/std/mem.zig index cee4322879..10ddd55ca6 100644 --- a/lib/std/mem.zig +++ b/lib/std/mem.zig @@ -861,7 +861,10 @@ fn lenSliceTo(ptr: anytype, comptime end: std.meta.Elem(@TypeOf(ptr))) usize { }, .Many => if (ptr_info.sentinel) |sentinel_ptr| { const sentinel = @as(*align(1) const ptr_info.child, @ptrCast(sentinel_ptr)).*; - // We may be looking for something other than the sentinel, + if (sentinel == end) { + return indexOfSentinel(ptr_info.child, end, ptr); + } + // We're looking for something other than the sentinel, // but iterating past the sentinel would be a bug so we need // to check for both. var i: usize = 0;