diff --git a/internal/caching/cache_lazy_load_members.go b/internal/caching/cache_lazy_load_members.go index 198983767..a4fda99ef 100644 --- a/internal/caching/cache_lazy_load_members.go +++ b/internal/caching/cache_lazy_load_members.go @@ -3,8 +3,6 @@ package caching import ( "fmt" "time" - - "github.com/matrix-org/gomatrixserverlib" ) const ( @@ -34,16 +32,13 @@ func NewLazyLoadCache() (*LazyLoadCache, error) { return &LazyLoadCache{cache}, err } -func (c *LazyLoadCache) StoreLazyLoadedMembers(reqUser, deviceID, roomID, userID string, event *gomatrixserverlib.HeaderedEvent) { +func (c *LazyLoadCache) StoreLazyLoadedUser(reqUser, deviceID, roomID, userID string) { cacheKey := fmt.Sprintf("%s/%s/%s/%s", reqUser, deviceID, roomID, userID) - c.Set(cacheKey, event) + c.Set(cacheKey, true) } -func (c *LazyLoadCache) GetLazyLoadedMembers(reqUser, deviceID, roomID, userID string) (*gomatrixserverlib.HeaderedEvent, bool) { +func (c *LazyLoadCache) IsLazyLoadedUserCached(reqUser, deviceID, roomID, userID string) bool { cacheKey := fmt.Sprintf("%s/%s/%s/%s", reqUser, deviceID, roomID, userID) - val, ok := c.Get(cacheKey) - if !ok { - return nil, ok - } - return val.(*gomatrixserverlib.HeaderedEvent), ok + _, ok := c.Get(cacheKey) + return ok } diff --git a/syncapi/streams/stream_pdu.go b/syncapi/streams/stream_pdu.go index 02e19bd2c..b345e4f2c 100644 --- a/syncapi/streams/stream_pdu.go +++ b/syncapi/streams/stream_pdu.go @@ -459,7 +459,7 @@ func (p *PDUStreamProvider) lazyLoadMembers( continue } // membership is not yet cached, add it to the list - if _, ok := cache.GetLazyLoadedMembers(device.UserID, device.ID, roomID, event.Sender()); !ok { + if !cache.IsLazyLoadedUserCached(device.UserID, device.ID, roomID, event.Sender()) { timelineUsers[event.Sender()] = struct{}{} } } @@ -471,7 +471,7 @@ func (p *PDUStreamProvider) lazyLoadMembers( if _, ok := timelineUsers[event.Sender()]; ok { newStateEvents = append(newStateEvents, event) if !stateFilter.IncludeRedundantMembers { - cache.StoreLazyLoadedMembers(device.UserID, device.ID, roomID, event.Sender(), event) + cache.StoreLazyLoadedUser(device.UserID, device.ID, roomID, event.Sender()) } delete(timelineUsers, event.Sender()) } @@ -495,7 +495,7 @@ func (p *PDUStreamProvider) lazyLoadMembers( } // cache the membership events for _, membership := range memberships { - cache.StoreLazyLoadedMembers(device.UserID, device.ID, roomID, membership.Sender(), membership) + cache.StoreLazyLoadedUser(device.UserID, device.ID, roomID, membership.Sender()) } stateEvents = append(newStateEvents, memberships...) return stateEvents, nil