change behaviour in supposedly unreachable cases
This commit is contained in:
committed by
Bennet Bleßmann
parent
d2ffd4f4bf
commit
dc495f10f8
@@ -601,6 +601,15 @@ impl MachineState {
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn unreachable_error(&self) -> MachineError {
|
||||
let stub = functor!(atom!("system_error"));
|
||||
|
||||
MachineError {
|
||||
stub,
|
||||
location: None,
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "ffi")]
|
||||
pub(super) fn ffi_error(&self, err: FFIError) -> MachineError {
|
||||
let error_atom = match err {
|
||||
|
||||
@@ -8680,6 +8680,7 @@ impl Machine {
|
||||
self.machine_st.throw_resource_error(resource_err_loc);
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
} else {
|
||||
#[cfg(unix)]
|
||||
{
|
||||
@@ -8697,16 +8698,18 @@ impl Machine {
|
||||
self.machine_st.throw_resource_error(resource_err_loc);
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
} else {
|
||||
unify!(self.machine_st, status_r, atom_as_cell!(atom!("unknown")));
|
||||
let err = self.machine_st.unreachable_error();
|
||||
Err(self.machine_st.error_form(err, stub_gen()))
|
||||
}
|
||||
}
|
||||
#[cfg(not(unix))]
|
||||
{
|
||||
unify!(self.machine_st, status_r, atom_as_cell!(atom!("unknown")));
|
||||
let err = self.machine_st.unreachable_error();
|
||||
Err(self.machine_st.error_form(err, stub_gen()))
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
Err(_) => {
|
||||
let perm_error = self.machine_st.permission_error(
|
||||
|
||||
Reference in New Issue
Block a user