getBackwardTopologyPos always returns a usable value

This commit is contained in:
Neil Alexander 2020-01-25 13:32:59 +00:00
parent 0cb7941054
commit cc6af4a67b

View file

@ -766,7 +766,7 @@ func (d *SyncServerDatasource) addInvitesToResponse(
func (d *SyncServerDatasource) getBackwardTopologyPos( func (d *SyncServerDatasource) getBackwardTopologyPos(
ctx context.Context, ctx context.Context,
events []types.StreamEvent, events []types.StreamEvent,
) (pos types.StreamPosition, err error) { ) (pos types.StreamPosition) {
if len(events) > 0 { if len(events) > 0 {
pos, _ = d.topology.selectPositionInTopology(ctx, events[0].EventID()) pos, _ = d.topology.selectPositionInTopology(ctx, events[0].EventID())
} }
@ -807,12 +807,7 @@ func (d *SyncServerDatasource) addRoomDeltaToResponse(
} }
recentEvents := d.StreamEventsToEvents(device, recentStreamEvents) recentEvents := d.StreamEventsToEvents(device, recentStreamEvents)
delta.stateEvents = removeDuplicates(delta.stateEvents, recentEvents) // roll back delta.stateEvents = removeDuplicates(delta.stateEvents, recentEvents) // roll back
backwardTopologyPos := d.getBackwardTopologyPos(ctx, recentStreamEvents)
var backwardTopologyPos types.StreamPosition
backwardTopologyPos, err = d.getBackwardTopologyPos(ctx, recentStreamEvents)
if err != nil {
return err
}
switch delta.membership { switch delta.membership {
case gomatrixserverlib.Join: case gomatrixserverlib.Join: