Pointerise types.RoomInfo in the cache so we can update it in-place in the latest events updater

This commit is contained in:
Neil Alexander 2022-07-13 10:13:34 +01:00
parent 9cd8e9d4b9
commit a1f9b02edf
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
5 changed files with 15 additions and 16 deletions

View file

@ -225,13 +225,12 @@ func (u *RoomUpdater) SetLatestEvents(
if err := u.d.RoomsTable.UpdateLatestEventNIDs(u.ctx, txn, roomNID, eventNIDs, lastEventNIDSent, currentStateSnapshotNID); err != nil {
return fmt.Errorf("u.d.RoomsTable.updateLatestEventNIDs: %w", err)
}
if roomID, ok := u.d.Cache.GetRoomServerRoomID(roomNID); ok {
if roomInfo, ok := u.d.Cache.GetRoomInfo(roomID); ok {
roomInfo.StateSnapshotNID = currentStateSnapshotNID
roomInfo.IsStub = false
u.d.Cache.StoreRoomInfo(roomID, roomInfo)
}
}
// Since it's entirely possible that this types.RoomInfo came from the
// cache, we should make sure to update that entry so that the next run
// works from live data.
u.roomInfo.StateSnapshotNID = currentStateSnapshotNID
u.roomInfo.IsStub = false
return nil
})
}