Fixes Miri faults.

This commit is contained in:
Stephen Chung 2022-12-15 22:33:11 +08:00
parent da7a887f67
commit ee53108d3a

View File

@ -386,7 +386,6 @@ impl Engine {
// Clone the first argument // Clone the first argument
backup.change_first_arg_to_copy(args); backup.change_first_arg_to_copy(args);
} }
auto_restore!(args if swap => move |a| backup.restore_first_arg(a));
#[cfg(feature = "debugging")] #[cfg(feature = "debugging")]
if self.is_debugger_registered() { if self.is_debugger_registered() {
@ -424,6 +423,10 @@ impl Engine {
.and_then(|r| self.check_data_size(r, pos)) .and_then(|r| self.check_data_size(r, pos))
.map_err(|err| err.fill_position(pos)); .map_err(|err| err.fill_position(pos));
if swap {
backup.restore_first_arg(args);
}
#[cfg(feature = "debugging")] #[cfg(feature = "debugging")]
if self.is_debugger_registered() { if self.is_debugger_registered() {
use crate::eval::{DebuggerEvent, DebuggerStatus}; use crate::eval::{DebuggerEvent, DebuggerStatus};