authorgravatar for andrew.kraevskii@gmail.comAndrew Kraevskiii <andrew.kraevskii@gmail.com> 2025-02-10 02:26:52+03:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-02-10 09:27:26+01:00
log6fa7d5d4ad02f9694bfabf0ef42f65236c02d1ef
tree99f88fe7e51b55de20ca893e4c50c69d018ae358
parentc0448a6c7c6a544ddfabd1a42c9dc42b47649fa8

std.mem: add missing check to lastIndexOfLinear


1 files changed, 1 insertions(+), 0 deletions(-)

lib/std/mem.zig+1
...@@ -1396,6 +1396,7 @@ pub fn indexOf(comptime T: type, haystack: []const T, needle: []const T) ?usize...@@ -1396,6 +1396,7 @@ pub fn indexOf(comptime T: type, haystack: []const T, needle: []const T) ?usize
1396/// Consider using `lastIndexOf` instead of this, which will automatically use a1396/// Consider using `lastIndexOf` instead of this, which will automatically use a
1397/// more sophisticated algorithm on larger inputs.1397/// more sophisticated algorithm on larger inputs.
1398pub fn lastIndexOfLinear(comptime T: type, haystack: []const T, needle: []const T) ?usize {1398pub fn lastIndexOfLinear(comptime T: type, haystack: []const T, needle: []const T) ?usize {
1399 if (needle.len > haystack.len) return null;
1399 var i: usize = haystack.len - needle.len;1400 var i: usize = haystack.len - needle.len;
1400 while (true) : (i -= 1) {1401 while (true) : (i -= 1) {
1401 if (mem.eql(T, haystack[i..][0..needle.len], needle)) return i;1402 if (mem.eql(T, haystack[i..][0..needle.len], needle)) return i;