replace assert with if - Err

This commit is contained in:
Patrick Ventuzelo
2019-12-05 14:53:21 +01:00
parent f212d9ce6a
commit 3d6b1876ac

View File

@@ -9,7 +9,7 @@ use dynasm::dynasm;
use dynasmrt::x64::Assembler; use dynasmrt::x64::Assembler;
use dynasmrt::{AssemblyOffset, DynamicLabel, DynasmApi, DynasmLabelApi, ExecutableBuffer}; use dynasmrt::{AssemblyOffset, DynamicLabel, DynasmApi, DynasmLabelApi, ExecutableBuffer};
use either::Either; use either::Either;
use more_asserts::assert_le;
use std::{ use std::{
any::{Any, TypeId}, any::{Any, TypeId},
collections::HashMap, collections::HashMap,
@@ -2081,7 +2081,9 @@ macro_rules! store {
Ok(()) Ok(())
} }
assert_le!(offset, i32::max_value() as u32); if !(offset <= i32::max_value() as u32) {
return Err(Error::Microwasm(format!("store: offset value too big {}", offset).to_string()))
}
let mut src = self.pop()?; let mut src = self.pop()?;
let base = self.pop()?; let base = self.pop()?;
@@ -4822,8 +4824,12 @@ impl<'this, M: ModuleContext> Context<'this, M> {
do_div(self, &mut divisor)?; do_div(self, &mut divisor)?;
self.free_value(divisor)?; self.free_value(divisor)?;
assert!(!self.block_state.regs.is_free(RAX)); if self.block_state.regs.is_free(RAX) {
assert!(!self.block_state.regs.is_free(RDX)); return Err(Error::Microwasm("full_div: RAX is not free".to_string()))
}
if self.block_state.regs.is_free(RDX) {
return Err(Error::Microwasm("full_div: RDX is not free".to_string()))
}
Ok((ValueLocation::Reg(RAX), ValueLocation::Reg(RDX), saved)) Ok((ValueLocation::Reg(RAX), ValueLocation::Reg(RDX), saved))
} }