zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 9d6f236728cf433b44048e21f81efdd167fe0098 (tree)
parent f08c6e4fe6ad63145ef69377f36f34e9f04cadec
Author: Sahnvour <sahnvour@pm.me>
Date:   Tue,  3 Sep 2019 23:56:04 +0200

add fastpath for std.mem.eql and simplify std.hash_map.eqlString

this should also be friendlier to the optimizer

Diffstat:
Mstd/hash_map.zig | 4+---
Mstd/mem.zig | 1+
2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/std/hash_map.zig b/std/hash_map.zig @@ -23,9 +23,7 @@ pub fn StringHashMap(comptime V: type) type { } pub fn eqlString(a: []const u8, b: []const u8) bool { - if (a.len != b.len) return false; - if (a.ptr == b.ptr) return true; - return mem.compare(u8, a, b) == .Equal; + return mem.eql(u8, a, b); } pub fn hashString(s: []const u8) u32 { diff --git a/std/mem.zig b/std/mem.zig @@ -339,6 +339,7 @@ test "mem.lessThan" { /// Compares two slices and returns whether they are equal. pub fn eql(comptime T: type, a: []const T, b: []const T) bool { if (a.len != b.len) return false; + if (a.ptr == b.ptr) return true; for (a) |item, index| { if (b[index] != item) return false; }