groupware: fix NPE when flattening durations in slist()

This commit is contained in:
Pascal Bleser
2026-06-24 15:37:00 +02:00
parent d460b42a68
commit 0e71922282
2 changed files with 11 additions and 3 deletions

View File

@@ -125,7 +125,11 @@ func RefineResultSlice[A, B any](a []*Result[A], refiner func([]*A, []*SessionSt
}
})
durations := structs.Flatten(structs.Map(a, func(e *Result[A]) []time.Duration {
return e.Durations
if e != nil {
return e.Durations
} else {
return nil
}
}))
b, bss, bs, bl, err := refiner(payloads, sessionStates, states, languages)
return NewResult(b, bss, bs, bl, durations), err

View File

@@ -385,11 +385,15 @@ func Reduce[T any](initialValue T, s []T, reducer func(a, b T) T) T {
func Flatten[T any](s [][]T) []T {
l := 0
for _, r := range s {
l += len(r)
if r != nil {
l += len(r)
}
}
result := make([]T, 0, l)
for _, r := range s {
result = append(result, r...)
if r != nil {
result = append(result, r...)
}
}
return result
}