From 37ce4e842601dc4198556c6157d0ddb61dfbe39c Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 28 Jun 2024 19:18:15 +0800 Subject: [PATCH] Ensure minimum doesn't exceed maximum With a maximum interval set, it would be possible to confuse with_review_fuzz() by passing min > max. --- rslib/src/scheduler/states/relearning.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rslib/src/scheduler/states/relearning.rs b/rslib/src/scheduler/states/relearning.rs index 5972a6f39..d67a5ef90 100644 --- a/rslib/src/scheduler/states/relearning.rs +++ b/rslib/src/scheduler/states/relearning.rs @@ -135,8 +135,11 @@ impl RelearnState { fn answer_easy(self, ctx: &StateContext) -> ReviewState { let scheduled_days = if let Some(states) = &ctx.fsrs_next_states { let (mut minimum, maximum) = ctx.min_and_max_review_intervals(1); + // ensure 1 greater than good where possible let good = ctx.with_review_fuzz(states.good.interval as f32, minimum, maximum); - minimum = good + 1; + if minimum < maximum { + minimum = good + 1; + } let interval = states.easy.interval; ctx.with_review_fuzz(interval as f32, minimum, maximum) } else {