Merge branch 'server-server-opt' into 'master'

Remove unneeded intermediary container collection

See merge request famedly/conduit!183
next
Timo Kösters 2021-09-01 20:02:37 +00:00
commit 17adf096e9
1 changed files with 21 additions and 26 deletions

View File

@ -1397,39 +1397,34 @@ async fn upgrade_outlier_to_timeline_pdu(
extremity_sstatehashes.insert(sstatehash, prev_event); extremity_sstatehashes.insert(sstatehash, prev_event);
} }
let mut fork_states = Vec::new();
if okay { if okay {
for (sstatehash, prev_event) in extremity_sstatehashes { let fork_states: Vec<_> = extremity_sstatehashes
let mut leaf_state = db
.rooms
.state_full_ids(sstatehash)
.map_err(|_| "Failed to ask db for room state.".to_owned())?;
if let Some(state_key) = &prev_event.state_key {
let shortstatekey = db
.rooms
.get_or_create_shortstatekey(&prev_event.kind, state_key, &db.globals)
.map_err(|_| "Failed to create shortstatekey.".to_owned())?;
leaf_state.insert(shortstatekey, Arc::new(prev_event.event_id.clone()));
// Now it's the state after the pdu
}
fork_states.push(leaf_state);
}
let fork_states = &fork_states
.into_iter() .into_iter()
.map(|map| { .map(|(sstatehash, prev_event)| {
map.into_iter() let mut leaf_state = db
.rooms
.state_full_ids(sstatehash)
.map_err(|_| "Failed to ask db for room state.".to_owned())?;
if let Some(state_key) = &prev_event.state_key {
let shortstatekey = db
.rooms
.get_or_create_shortstatekey(&prev_event.kind, state_key, &db.globals)
.map_err(|_| "Failed to create shortstatekey.".to_owned())?;
leaf_state.insert(shortstatekey, Arc::new(prev_event.event_id.clone()));
// Now it's the state after the pdu
}
leaf_state
.into_iter()
.map(|(k, id)| (db.rooms.get_statekey_from_short(k).map(|k| (k, id)))) .map(|(k, id)| (db.rooms.get_statekey_from_short(k).map(|k| (k, id))))
.collect::<Result<StateMap<_>>>() .collect::<Result<StateMap<_>>>()
.map_err(|_| "Failed to get_statekey_from_short.".to_owned())
}) })
.collect::<Result<Vec<_>>>() .collect::<StdResult<_, _>>()?;
.map_err(|_| "Failed to get_statekey_from_short.".to_owned())?;
let mut auth_chain_sets = Vec::new(); let mut auth_chain_sets = Vec::new();
for state in fork_states { for state in &fork_states {
auth_chain_sets.push( auth_chain_sets.push(
get_auth_chain( get_auth_chain(
&room_id, &room_id,