From a187851900377383eabb91df9954b56252ddda64 Mon Sep 17 00:00:00 2001 From: Blake Mizerany Date: Fri, 5 Apr 2024 22:17:07 -0700 Subject: [PATCH] x/model: fast-path CompareFold for unequal lengths --- x/model/name.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/x/model/name.go b/x/model/name.go index a6cef7e35..82396af27 100644 --- a/x/model/name.go +++ b/x/model/name.go @@ -308,13 +308,17 @@ func (r Name) CompareFold(o Name) int { } func compareFold(a, b string) int { + // fast-path for unequal lengths + if n := cmp.Compare(len(a), len(b)); n != 0 { + return n + } for i := 0; i < len(a) && i < len(b); i++ { ca, cb := downcase(a[i]), downcase(b[i]) if n := cmp.Compare(ca, cb); n != 0 { return n } } - return cmp.Compare(len(a), len(b)) + return 0 } func downcase(c byte) byte {