diff options
author | Matthew Hodgson <matthew@matrix.org> | 2018-07-24 13:40:49 +0100 |
---|---|---|
committer | Matthew Hodgson <matthew@matrix.org> | 2018-07-24 13:40:49 +0100 |
commit | eb1d911ab743e85154f7c4b2db8a954d152020dc (patch) | |
tree | 5e007943ce416f87971eb90bc88d2f56cfa0dca8 /synapse/handlers/sync.py | |
parent | Merge branch 'develop' into matthew/filter_members (diff) | |
download | synapse-eb1d911ab743e85154f7c4b2db8a954d152020dc.tar.xz |
rather than adding ll_ids, remove them from p_ids
Diffstat (limited to '')
-rw-r--r-- | synapse/handlers/sync.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index e5a2329d73..1422843af8 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -1553,16 +1553,17 @@ def _calculate_state( # as we may not have sent them to the client before. We find these membership # events by filtering them out of timeline_start, which has already been filtered # to only include membership events for the senders in the timeline. + # In practice, we can do this by removing them from the p_ids list. + # see https://github.com/matrix-org/synapse/pull/2970 + # /files/efcdacad7d1b7f52f879179701c7e0d9b763511f#r204732809 if lazy_load_members: - ll_ids = set( + p_ids.difference_update( e for t, e in timeline_start.iteritems() - if t[0] == EventTypes.Member and e not in tc_ids + if t[0] == EventTypes.Member ) - else: - ll_ids = set() - state_ids = (((c_ids | ts_ids) - p_ids) - tc_ids) | ll_ids + state_ids = ((c_ids | ts_ids) - p_ids) - tc_ids return { event_id_to_key[e]: e for e in state_ids |