Take iterator in calculate_hash()

Avoids unnecessary allocations.
This commit is contained in:
Lambda 2024-08-26 19:16:51 +00:00
parent cce83beedb
commit f1642c92d1
5 changed files with 24 additions and 33 deletions

View file

@ -133,9 +133,8 @@ impl Service {
let previous_shortstatehash =
self.db.get_room_shortstatehash(room_id)?;
let state_hash = calculate_hash(
&state_ids_compressed.iter().map(|s| &s[..]).collect::<Vec<_>>(),
);
let state_hash =
calculate_hash(state_ids_compressed.iter().map(|s| &s[..]));
let (shortstatehash, already_existed) =
services().rooms.short.get_or_create_shortstatehash(&state_hash)?;

View file

@ -283,10 +283,7 @@ impl Service {
services().rooms.state.get_room_shortstatehash(room_id)?;
let state_hash = utils::calculate_hash(
&new_state_ids_compressed
.iter()
.map(|bytes| &bytes[..])
.collect::<Vec<_>>(),
new_state_ids_compressed.iter().map(|bytes| &bytes[..]),
);
let (new_shortstatehash, already_existed) =

View file

@ -755,17 +755,10 @@ async fn handle_appservice_event(
appservice::event::push_events::v1::Request {
events: pdu_jsons,
txn_id: general_purpose::URL_SAFE_NO_PAD
.encode(calculate_hash(
&events
.iter()
.map(|e| match e {
SendingEventType::Edu(b) => {
b.json().get().as_bytes()
}
SendingEventType::Pdu(b) => b.as_bytes(),
})
.collect::<Vec<_>>(),
))
.encode(calculate_hash(events.iter().map(|e| match e {
SendingEventType::Edu(b) => b.json().get().as_bytes(),
SendingEventType::Pdu(b) => b.as_bytes(),
})))
.into(),
},
)
@ -902,17 +895,10 @@ async fn handle_federation_event(
edus: edu_jsons,
origin_server_ts: MilliSecondsSinceUnixEpoch::now(),
transaction_id: general_purpose::URL_SAFE_NO_PAD
.encode(calculate_hash(
&events
.iter()
.map(|e| match e {
SendingEventType::Edu(b) => {
b.json().get().as_bytes()
}
SendingEventType::Pdu(b) => b.as_bytes(),
})
.collect::<Vec<_>>(),
))
.encode(calculate_hash(events.iter().map(|e| match e {
SendingEventType::Edu(b) => b.json().get().as_bytes(),
SendingEventType::Pdu(b) => b.as_bytes(),
})))
.into(),
},
false,