diff --git a/rslib/src/scheduler/fsrs/simulator.rs b/rslib/src/scheduler/fsrs/simulator.rs index c1f4df817..005f7ca86 100644 --- a/rslib/src/scheduler/fsrs/simulator.rs +++ b/rslib/src/scheduler/fsrs/simulator.rs @@ -142,10 +142,11 @@ impl Collection { // calculate any missing memory state for c in &mut cards { if is_included_card(c) && c.memory_state.is_none() { - let original = c.clone(); - let new_state = self.compute_memory_state(c.id)?.state; - c.memory_state = new_state.map(Into::into); - self.update_card_inner(c, original, self.usn()?)?; + let fsrs_data = self.compute_memory_state(c.id)?; + c.memory_state = fsrs_data.state.map(Into::into); + c.desired_retention = Some(fsrs_data.desired_retention); + c.decay = Some(fsrs_data.decay); + self.storage.update_card(c)?; } } let days_elapsed = self.timing_today().unwrap().days_elapsed as i32;