diff --git a/matrix_sdk_crypto/src/group_manager.rs b/matrix_sdk_crypto/src/group_manager.rs index 1e6b4c55..b9b070d8 100644 --- a/matrix_sdk_crypto/src/group_manager.rs +++ b/matrix_sdk_crypto/src/group_manager.rs @@ -59,9 +59,9 @@ impl GroupSessionManager { } pub fn mark_request_as_sent(&self, request_id: &Uuid) { - self.outbound_sessions_being_shared - .remove(request_id) - .map(|(_, s)| s.mark_request_as_sent(request_id)); + if let Some((_, s)) = self.outbound_sessions_being_shared.remove(request_id) { + s.mark_request_as_sent(request_id); + } } /// Get an outbound group session for a room, if one exists. diff --git a/matrix_sdk_crypto/src/olm/group_sessions/outbound.rs b/matrix_sdk_crypto/src/olm/group_sessions/outbound.rs index 532881a9..54e59c53 100644 --- a/matrix_sdk_crypto/src/olm/group_sessions/outbound.rs +++ b/matrix_sdk_crypto/src/olm/group_sessions/outbound.rs @@ -158,9 +158,7 @@ impl OutboundGroupSession { /// This removes the request from the queue and marks the set of /// users/devices that received the session. pub fn mark_request_as_sent(&self, request_id: &Uuid) { - let request = self.to_share_with_set.remove(request_id); - - request.map(|(_, r)| { + if let Some((_, r)) = self.to_share_with_set.remove(request_id) { let user_pairs = r.messages.iter().map(|(u, v)| { ( u.clone(), @@ -179,16 +177,16 @@ impl OutboundGroupSession { .entry(u) .or_insert_with(DashSet::new) .extend(d); - }) - }); + }); - if self.to_share_with_set.is_empty() { - debug!( - "Marking session {} for room {} as shared.", - self.session_id(), - self.room_id - ); - self.mark_as_shared(); + if self.to_share_with_set.is_empty() { + debug!( + "Marking session {} for room {} as shared.", + self.session_id(), + self.room_id + ); + self.mark_as_shared(); + } } }