mirror of
https://mau.dev/maunium/synapse.git
synced 2024-09-12 12:32:07 +00:00
Merge pull request #3737 from matrix-org/erikj/remove_redundant_state_func
Remove unnecessary resolve_events_with_state_map
This commit is contained in:
commit
567363e497
1
changelog.d/3737.misc
Normal file
1
changelog.d/3737.misc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Remove redundant state resolution function
|
@ -1831,7 +1831,7 @@ class FederationHandler(BaseHandler):
|
|||||||
|
|
||||||
room_version = yield self.store.get_room_version(event.room_id)
|
room_version = yield self.store.get_room_version(event.room_id)
|
||||||
|
|
||||||
new_state = self.state_handler.resolve_events(
|
new_state = yield self.state_handler.resolve_events(
|
||||||
room_version,
|
room_version,
|
||||||
[list(local_view.values()), list(remote_view.values())],
|
[list(local_view.values()), list(remote_view.values())],
|
||||||
event
|
event
|
||||||
|
@ -385,6 +385,7 @@ class StateHandler(object):
|
|||||||
ev_ids, get_prev_content=False, check_redacted=False,
|
ev_ids, get_prev_content=False, check_redacted=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@defer.inlineCallbacks
|
||||||
def resolve_events(self, room_version, state_sets, event):
|
def resolve_events(self, room_version, state_sets, event):
|
||||||
logger.info(
|
logger.info(
|
||||||
"Resolving state for %s with %d groups", event.room_id, len(state_sets)
|
"Resolving state for %s with %d groups", event.room_id, len(state_sets)
|
||||||
@ -401,15 +402,17 @@ class StateHandler(object):
|
|||||||
}
|
}
|
||||||
|
|
||||||
with Measure(self.clock, "state._resolve_events"):
|
with Measure(self.clock, "state._resolve_events"):
|
||||||
new_state = resolve_events_with_state_map(
|
new_state = yield resolve_events_with_factory(
|
||||||
room_version, state_set_ids, state_map,
|
room_version, state_set_ids,
|
||||||
|
event_map=state_map,
|
||||||
|
state_map_factory=self._state_map_factory
|
||||||
)
|
)
|
||||||
|
|
||||||
new_state = {
|
new_state = {
|
||||||
key: state_map[ev_id] for key, ev_id in iteritems(new_state)
|
key: state_map[ev_id] for key, ev_id in iteritems(new_state)
|
||||||
}
|
}
|
||||||
|
|
||||||
return new_state
|
defer.returnValue(new_state)
|
||||||
|
|
||||||
|
|
||||||
class StateResolutionHandler(object):
|
class StateResolutionHandler(object):
|
||||||
@ -589,31 +592,6 @@ def _make_state_cache_entry(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def resolve_events_with_state_map(room_version, state_sets, state_map):
|
|
||||||
"""
|
|
||||||
Args:
|
|
||||||
room_version(str): Version of the room
|
|
||||||
state_sets(list): List of dicts of (type, state_key) -> event_id,
|
|
||||||
which are the different state groups to resolve.
|
|
||||||
state_map(dict): a dict from event_id to event, for all events in
|
|
||||||
state_sets.
|
|
||||||
|
|
||||||
Returns
|
|
||||||
dict[(str, str), str]:
|
|
||||||
a map from (type, state_key) to event_id.
|
|
||||||
"""
|
|
||||||
if room_version in (RoomVersions.V1, RoomVersions.VDH_TEST,):
|
|
||||||
return v1.resolve_events_with_state_map(
|
|
||||||
state_sets, state_map,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
# This should only happen if we added a version but forgot to add it to
|
|
||||||
# the list above.
|
|
||||||
raise Exception(
|
|
||||||
"No state resolution algorithm defined for version %r" % (room_version,)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_events_with_factory(room_version, state_sets, event_map, state_map_factory):
|
def resolve_events_with_factory(room_version, state_sets, event_map, state_map_factory):
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
|
@ -30,34 +30,6 @@ logger = logging.getLogger(__name__)
|
|||||||
POWER_KEY = (EventTypes.PowerLevels, "")
|
POWER_KEY = (EventTypes.PowerLevels, "")
|
||||||
|
|
||||||
|
|
||||||
def resolve_events_with_state_map(state_sets, state_map):
|
|
||||||
"""
|
|
||||||
Args:
|
|
||||||
state_sets(list): List of dicts of (type, state_key) -> event_id,
|
|
||||||
which are the different state groups to resolve.
|
|
||||||
state_map(dict): a dict from event_id to event, for all events in
|
|
||||||
state_sets.
|
|
||||||
|
|
||||||
Returns
|
|
||||||
dict[(str, str), str]:
|
|
||||||
a map from (type, state_key) to event_id.
|
|
||||||
"""
|
|
||||||
if len(state_sets) == 1:
|
|
||||||
return state_sets[0]
|
|
||||||
|
|
||||||
unconflicted_state, conflicted_state = _seperate(
|
|
||||||
state_sets,
|
|
||||||
)
|
|
||||||
|
|
||||||
auth_events = _create_auth_events_from_maps(
|
|
||||||
unconflicted_state, conflicted_state, state_map
|
|
||||||
)
|
|
||||||
|
|
||||||
return _resolve_with_state(
|
|
||||||
unconflicted_state, conflicted_state, auth_events, state_map
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def resolve_events_with_factory(state_sets, event_map, state_map_factory):
|
def resolve_events_with_factory(state_sets, event_map, state_map_factory):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user