]> Repositorios git - scryer-prolog.git/commitdiff
use checked_add to prevent silent overflow
authorSkgland <[email protected]>
Fri, 27 Mar 2026 21:00:54 +0000 (22:00 +0100)
committerSkgland <[email protected]>
Fri, 27 Mar 2026 21:00:54 +0000 (22:00 +0100)
src/machine/machine_state.rs

index 024b31b6bb85faeba121f681864684758d48a7d8..3744da340a66197e5f4a3730c77be8eb9e30d727 100644 (file)
@@ -548,7 +548,8 @@ impl MachineState {
             return true;
         }
 
-        self.cwil.global_count += 1;
+        // use strict_add once msrv is >= 1.91.0
+        self.cwil.global_count = self.cwil.global_count.checked_add(1).unwrap();
 
         if let Some(&(ref limit, block)) = self.cwil.limits.last() {
             if self.cwil.local_count == *limit {
@@ -1127,7 +1128,8 @@ impl CWIL {
     }
 
     pub(crate) fn add_limit(&mut self, mut limit: u128, block: usize) -> u128 {
-        limit += &self.local_count;
+        // use strict_add once msrv is >= 1.91.0
+        limit = limit.checked_add(self.local_count).unwrap();
 
         match self.limits.last() {
             Some((ref inner_limit, _)) if *inner_limit <= limit => {}