PR comment, make JoinResponse etc. pointers

This commit is contained in:
Till Faelligen 2022-10-05 12:28:42 +02:00
parent 861409911f
commit 55aef6abbb
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E
6 changed files with 21 additions and 21 deletions

View file

@ -92,7 +92,7 @@ func (p *AccountDataStreamProvider) IncrementalSync(
if roomData, ok := dataRes.RoomAccountData[roomID][dataType]; ok { if roomData, ok := dataRes.RoomAccountData[roomID][dataType]; ok {
joinData, ok := req.Response.Rooms.Join[roomID] joinData, ok := req.Response.Rooms.Join[roomID]
if !ok { if !ok {
joinData = *types.NewJoinResponse() joinData = types.NewJoinResponse()
} }
joinData.AccountData.Events = append( joinData.AccountData.Events = append(
joinData.AccountData.Events, joinData.AccountData.Events,

View file

@ -65,7 +65,7 @@ func (p *InviteStreamProvider) IncrementalSync(
continue continue
} }
ir := types.NewInviteResponse(inviteEvent) ir := types.NewInviteResponse(inviteEvent)
req.Response.Rooms.Invite[roomID] = *ir req.Response.Rooms.Invite[roomID] = ir
} }
// When doing an initial sync, we don't want to add retired invites, as this // When doing an initial sync, we don't want to add retired invites, as this
@ -87,7 +87,7 @@ func (p *InviteStreamProvider) IncrementalSync(
Type: "m.room.member", Type: "m.room.member",
Content: gomatrixserverlib.RawJSON(`{"membership":"leave"}`), Content: gomatrixserverlib.RawJSON(`{"membership":"leave"}`),
}) })
req.Response.Rooms.Leave[roomID] = *lr req.Response.Rooms.Leave[roomID] = lr
} }
} }

View file

@ -106,7 +106,7 @@ func (p *PDUStreamProvider) CompleteSync(
} }
continue continue
} }
req.Response.Rooms.Join[roomID] = *jr req.Response.Rooms.Join[roomID] = jr
req.Rooms[roomID] = gomatrixserverlib.Join req.Rooms[roomID] = gomatrixserverlib.Join
} }
@ -129,7 +129,7 @@ func (p *PDUStreamProvider) CompleteSync(
} }
continue continue
} }
req.Response.Rooms.Peek[peek.RoomID] = *jr req.Response.Rooms.Peek[peek.RoomID] = jr
} }
} }
@ -320,7 +320,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
// didn't "remove" events, return that the response is limited. // didn't "remove" events, return that the response is limited.
jr.Timeline.Limited = limited && len(events) == len(recentEvents) jr.Timeline.Limited = limited && len(events) == len(recentEvents)
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync) jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
res.Rooms.Join[delta.RoomID] = *jr res.Rooms.Join[delta.RoomID] = jr
case gomatrixserverlib.Peek: case gomatrixserverlib.Peek:
jr := types.NewJoinResponse() jr := types.NewJoinResponse()
@ -329,7 +329,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync) jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
jr.Timeline.Limited = limited jr.Timeline.Limited = limited
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync) jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
res.Rooms.Peek[delta.RoomID] = *jr res.Rooms.Peek[delta.RoomID] = jr
case gomatrixserverlib.Leave: case gomatrixserverlib.Leave:
fallthrough // transitions to leave are the same as ban fallthrough // transitions to leave are the same as ban
@ -342,7 +342,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
// didn't "remove" events, return that the response is limited. // didn't "remove" events, return that the response is limited.
lr.Timeline.Limited = limited && len(events) == len(recentEvents) lr.Timeline.Limited = limited && len(events) == len(recentEvents)
lr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync) lr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.StateEvents, gomatrixserverlib.FormatSync)
res.Rooms.Leave[delta.RoomID] = *lr res.Rooms.Leave[delta.RoomID] = lr
} }
return latestPosition, nil return latestPosition, nil

View file

@ -4,9 +4,10 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/dendrite/syncapi/storage" "github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/types" "github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
) )
type ReceiptStreamProvider struct { type ReceiptStreamProvider struct {
@ -76,7 +77,7 @@ func (p *ReceiptStreamProvider) IncrementalSync(
continue continue
} }
jr := *types.NewJoinResponse() jr := types.NewJoinResponse()
if existing, ok := req.Response.Rooms.Join[roomID]; ok { if existing, ok := req.Response.Rooms.Join[roomID]; ok {
jr = existing jr = existing
} }

View file

@ -38,7 +38,7 @@ func (p *TypingStreamProvider) IncrementalSync(
jr, ok := req.Response.Rooms.Join[roomID] jr, ok := req.Response.Rooms.Join[roomID]
if !ok { if !ok {
jr = *types.NewJoinResponse() jr = types.NewJoinResponse()
} }
if users, updated := p.EDUCache.GetTypingUsersIfUpdatedAfter( if users, updated := p.EDUCache.GetTypingUsersIfUpdatedAfter(

View file

@ -333,10 +333,10 @@ type DeviceLists struct {
} }
type RoomsResponse struct { type RoomsResponse struct {
Join map[string]JoinResponse `json:"join,omitempty"` Join map[string]*JoinResponse `json:"join,omitempty"`
Peek map[string]JoinResponse `json:"peek,omitempty"` Peek map[string]*JoinResponse `json:"peek,omitempty"`
Invite map[string]InviteResponse `json:"invite,omitempty"` Invite map[string]*InviteResponse `json:"invite,omitempty"`
Leave map[string]LeaveResponse `json:"leave,omitempty"` Leave map[string]*LeaveResponse `json:"leave,omitempty"`
} }
type ToDeviceResponse struct { type ToDeviceResponse struct {
@ -399,10 +399,10 @@ func NewResponse() *Response {
// Pre-initialise the maps. Synapse will return {} even if there are no rooms under a specific section, // Pre-initialise the maps. Synapse will return {} even if there are no rooms under a specific section,
// so let's do the same thing. Bonus: this means we can't get dreaded 'assignment to entry in nil map' errors. // so let's do the same thing. Bonus: this means we can't get dreaded 'assignment to entry in nil map' errors.
res.Rooms = &RoomsResponse{ res.Rooms = &RoomsResponse{
Join: map[string]JoinResponse{}, Join: map[string]*JoinResponse{},
Peek: map[string]JoinResponse{}, Peek: map[string]*JoinResponse{},
Invite: map[string]InviteResponse{}, Invite: map[string]*InviteResponse{},
Leave: map[string]LeaveResponse{}, Leave: map[string]*LeaveResponse{},
} }
// Also pre-intialise empty slices or else we'll insert 'null' instead of '[]' for the value. // Also pre-intialise empty slices or else we'll insert 'null' instead of '[]' for the value.
@ -493,7 +493,7 @@ func (jr JoinResponse) MarshalJSON() ([]byte, error) {
// NewJoinResponse creates an empty response with initialised arrays. // NewJoinResponse creates an empty response with initialised arrays.
func NewJoinResponse() *JoinResponse { func NewJoinResponse() *JoinResponse {
res := JoinResponse{ return &JoinResponse{
Summary: &Summary{}, Summary: &Summary{},
State: &ClientEvents{}, State: &ClientEvents{},
Timeline: &Timeline{}, Timeline: &Timeline{},
@ -501,7 +501,6 @@ func NewJoinResponse() *JoinResponse {
AccountData: &ClientEvents{}, AccountData: &ClientEvents{},
UnreadNotifications: &UnreadNotifications{}, UnreadNotifications: &UnreadNotifications{},
} }
return &res
} }
// InviteResponse represents a /sync response for a room which is under the 'invite' key. // InviteResponse represents a /sync response for a room which is under the 'invite' key.