java-topology/defects/forgejo-0002/patch/forgejo-0002.patch

28 lines
1.1 KiB
Diff

# UNDF: UNDF-2026-000001092
--- a/modules/repository/init.go
+++ b/modules/repository/init.go
@@ -104,13 +104,16 @@ func LoadRepoConfig() error {
// Filter out invalid names and promote preferred licenses.
+ // Build a set for O(1) lookups to avoid O(P*L) and O(L*P) scans.
+ licensesSet := make(map[string]struct{}, len(Licenses))
+ for _, name := range Licenses {
+ licensesSet[strings.ToLower(name)] = struct{}{}
+ }
+ preferredSet := make(map[string]struct{}, len(setting.Repository.PreferredLicenses))
+ for _, name := range setting.Repository.PreferredLicenses {
+ preferredSet[strings.ToLower(name)] = struct{}{}
+ }
sortedLicenses := make([]string, 0, len(Licenses))
for _, name := range setting.Repository.PreferredLicenses {
- if util.SliceContainsString(Licenses, name, true) {
+ if _, ok := licensesSet[strings.ToLower(name)]; ok {
sortedLicenses = append(sortedLicenses, name)
}
}
for _, name := range Licenses {
- if !util.SliceContainsString(setting.Repository.PreferredLicenses, name, true) {
+ if _, ok := preferredSet[strings.ToLower(name)]; !ok {
sortedLicenses = append(sortedLicenses, name)
}
}