From ba34cdcf565ab8506072ca0da3eb3338f4d4bbfb Mon Sep 17 00:00:00 2001 From: Timo K Date: Thu, 26 Feb 2026 16:42:30 +0100 Subject: [PATCH] fix usize subtraction --- crates/matrix-sdk/src/widget/matrix.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/matrix-sdk/src/widget/matrix.rs b/crates/matrix-sdk/src/widget/matrix.rs index 26eee7f66..8588f5178 100644 --- a/crates/matrix-sdk/src/widget/matrix.rs +++ b/crates/matrix-sdk/src/widget/matrix.rs @@ -119,7 +119,7 @@ impl MatrixDriver { return Err(Error::UnknownError(Box::new(ReadEventsError::InvalidFromEventId))); } }, - None => Ok(events.len() - 1), + None => Ok(if events.len() > 0 { events.len() - 1 } else { 0 }), }; let mut index_of_token = compute_index_of_token(&from, &events)?; while index_of_token <= limit || pagination_limit_exceeded { @@ -139,7 +139,8 @@ impl MatrixDriver { // update the index where we can find our pagination token index_of_token = compute_index_of_token(&from, &events)?; } - let lower_bound_index = std::cmp::max(index_of_token - limit, 0); + + let lower_bound_index = std::cmp::max((index_of_token as i32) - (limit as i32), 0) as usize; let token = events[lower_bound_index].event_id().map(|id| id.to_string()); let filter_event_type = |e: &Raw| { @@ -157,7 +158,7 @@ impl MatrixDriver { }), }; - let filtered_events = if index_of_token - lower_bound_index > 0 { + let filtered_events = if index_of_token as i32 - lower_bound_index as i32 > 0 { events[lower_bound_index..index_of_token] .into_iter() .map(|e| attach_room_id(e.raw(), self.room.room_id()))