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")]
|
#[cfg(feature = "ffi")]
|
||||||
pub(super) fn ffi_error(&self, err: FFIError) -> MachineError {
|
pub(super) fn ffi_error(&self, err: FFIError) -> MachineError {
|
||||||
let error_atom = match err {
|
let error_atom = match err {
|
||||||
|
|||||||
@@ -8680,6 +8680,7 @@ impl Machine {
|
|||||||
self.machine_st.throw_resource_error(resource_err_loc);
|
self.machine_st.throw_resource_error(resource_err_loc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
{
|
{
|
||||||
@@ -8697,16 +8698,18 @@ impl Machine {
|
|||||||
self.machine_st.throw_resource_error(resource_err_loc);
|
self.machine_st.throw_resource_error(resource_err_loc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Ok(())
|
||||||
} else {
|
} 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))]
|
#[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(_) => {
|
Err(_) => {
|
||||||
let perm_error = self.machine_st.permission_error(
|
let perm_error = self.machine_st.permission_error(
|
||||||
|
|||||||
Reference in New Issue
Block a user