]> Repositorios git - scryer-prolog.git/commitdiff
drop payload after resetting machine
authorBennet Bleßmann <[email protected]>
Sat, 3 Aug 2024 17:27:32 +0000 (19:27 +0200)
committerBennet Bleßmann <[email protected]>
Sat, 3 Aug 2024 17:27:32 +0000 (19:27 +0200)
- under some circumstances the payload is accessed durring reset which would cause a segfault if we drop the payload too early

src/machine/loader.rs

index 07efb58a8efe4c8f2dbdfced953a0a9cfb69943e..87483dce7a2789ae35851652c7a190d0d52db94d 100644 (file)
@@ -323,8 +323,8 @@ impl<'a> LoadState<'a> for LiveLoadAndMachineState<'a> {
     #[inline(always)]
     fn reset_machine(loader: &mut Loader<'a, Self>) {
         if loader.payload.load_state.get_tag() != ArenaHeaderTag::Dropped {
-            loader.payload.load_state.drop_payload();
             loader.reset_machine();
+            loader.payload.load_state.drop_payload();
         }
     }