No-op if no added state event IDs

This commit is contained in:
Neil Alexander 2022-03-07 16:38:24 +00:00
parent c9fbe45475
commit 71a0ef3df1
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -170,14 +170,16 @@ type OutputNewRoomEvent struct {
// The slice returned contains the output room event itself in all cases.
func (o *OutputNewRoomEvent) AddsState(ctx context.Context, rsAPI RoomserverInternalAPI) ([]*gomatrixserverlib.HeaderedEvent, error) {
events := make([]*gomatrixserverlib.HeaderedEvent, 0, len(o.AddsStateEventIDs))
eventsReq := &QueryEventsByIDRequest{
EventIDs: o.AddsStateEventIDs,
if len(o.AddsStateEventIDs) > 0 {
eventsReq := &QueryEventsByIDRequest{
EventIDs: o.AddsStateEventIDs,
}
eventsRes := &QueryEventsByIDResponse{}
if err := rsAPI.QueryEventsByID(ctx, eventsReq, eventsRes); err != nil {
return nil, fmt.Errorf("s.rsAPI.QueryEventsByID: %w", err)
}
events = append(events, eventsRes.Events...)
}
eventsRes := &QueryEventsByIDResponse{}
if err := rsAPI.QueryEventsByID(ctx, eventsReq, eventsRes); err != nil {
return nil, fmt.Errorf("s.rsAPI.QueryEventsByID: %w", err)
}
events = append(events, eventsRes.Events...)
return events, nil
}