From b8aa2f74a8c55523b3bfcb501891090a2407ec7b Mon Sep 17 00:00:00 2001 From: Ritish Srivastava <121374890+Ritish134@users.noreply.github.com> Date: Mon, 14 Jul 2025 07:50:30 +0000 Subject: [PATCH] reduce allocations in GetExt --- pkg/programkind/programkind.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pkg/programkind/programkind.go b/pkg/programkind/programkind.go index a8db00d30..3dcf69b47 100644 --- a/pkg/programkind/programkind.go +++ b/pkg/programkind/programkind.go @@ -145,14 +145,20 @@ func GetExt(path string) string { base = versionRegex.ReplaceAllString(base, "") ext := filepath.Ext(base) + if ext == "" { + return "" + } + + lastDot := strings.LastIndex(base, ".") + if lastDot == -1 { + return ext + } - if ext != "" && strings.Contains(base, ".") { - parts := strings.Split(base, ".") - if len(parts) > 2 { - subExt := fmt.Sprintf(".%s%s", parts[len(parts)-2], ext) - if _, ok := ArchiveMap[subExt]; ok { - return subExt - } + prevDot := strings.LastIndex(base[:lastDot], ".") + if prevDot != -1 { + subExt := base[prevDot:] + if _, ok := ArchiveMap[subExt]; ok { + return subExt } }