Commit 9d6f236728

Sahnvour <sahnvour@pm.me>
2019-09-03 23:56:04
add fastpath for std.mem.eql and simplify std.hash_map.eqlString
this should also be friendlier to the optimizer
1 parent f08c6e4
Changed files (2)
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 {
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;
     }