]> Repositorios git - scryer-prolog.git/commitdiff
fix char_offset values in add_pstr_offset_chars (#2381)
authorMark Thom <[email protected]>
Wed, 10 Apr 2024 21:46:11 +0000 (15:46 -0600)
committerMark Thom <[email protected]>
Wed, 10 Apr 2024 21:46:11 +0000 (15:46 -0600)
src/machine/system_calls.rs

index 1b7a509e5a8e8fdd15b263953177a26210982933..8dafa43e558737cb1092005407ea3ee3d45b9bc4 100644 (file)
@@ -247,7 +247,7 @@ impl BrentAlgState {
                     self.pstr_chars += num_chars;
                     Some(CycleSearchResult::ProperList(self.num_steps()))
                 } else {
-                    let char_offset = self.num_steps() + num_chars - self.max_steps as usize;
+                    let char_offset = self.max_steps as usize - self.num_steps();
                     self.pstr_chars += char_offset;
                     Some(CycleSearchResult::PStrLocation(self.max_steps as usize, h, char_offset + offset))
                 }
@@ -260,7 +260,7 @@ impl BrentAlgState {
                     self.pstr_chars += num_chars - 1;
                     self.step(h+1)
                 } else {
-                    let char_offset = self.num_steps() + num_chars - self.max_steps as usize;
+                    let char_offset = self.max_steps as usize - self.num_steps();
                     self.pstr_chars += char_offset;
                     Some(CycleSearchResult::PStrLocation(self.max_steps as usize, h, char_offset + offset))
                 }