Speed up _calculate_state_delta

This commit is contained in:
Erik Johnston 2018-07-24 10:55:11 +01:00
parent f559119de0
commit ff5426f6b8
1 changed files with 3 additions and 10 deletions

View File

@ -644,21 +644,14 @@ class EventsStore(EventsWorkerStore):
"""
existing_state = yield self.get_current_state_ids(room_id)
existing_events = set(itervalues(existing_state))
new_events = set(ev_id for ev_id in itervalues(current_state))
changed_events = existing_events ^ new_events
if not changed_events:
return
to_delete = {
key: ev_id for key, ev_id in iteritems(existing_state)
if ev_id in changed_events
if ev_id != current_state.get(key)
}
events_to_insert = (new_events - existing_events)
to_insert = {
key: ev_id for key, ev_id in iteritems(current_state)
if ev_id in events_to_insert
if ev_id != existing_state.get(key)
}
defer.returnValue((to_delete, to_insert))