diff --git a/pkg/jmap/api.go b/pkg/jmap/api.go index a370390f9b..3c9bc20dbf 100644 --- a/pkg/jmap/api.go +++ b/pkg/jmap/api.go @@ -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 diff --git a/pkg/structs/structs.go b/pkg/structs/structs.go index dbf06856ca..800b63dfec 100644 --- a/pkg/structs/structs.go +++ b/pkg/structs/structs.go @@ -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 }