From 3d6b1876acf69a645f58080cb1f158e5aad80b7a Mon Sep 17 00:00:00 2001 From: Patrick Ventuzelo Date: Thu, 5 Dec 2019 14:53:21 +0100 Subject: [PATCH] replace assert with if - Err --- crates/lightbeam/src/backend.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/lightbeam/src/backend.rs b/crates/lightbeam/src/backend.rs index 164d4034e9..cd8efe06e3 100644 --- a/crates/lightbeam/src/backend.rs +++ b/crates/lightbeam/src/backend.rs @@ -9,7 +9,7 @@ use dynasm::dynasm; use dynasmrt::x64::Assembler; use dynasmrt::{AssemblyOffset, DynamicLabel, DynasmApi, DynasmLabelApi, ExecutableBuffer}; use either::Either; -use more_asserts::assert_le; + use std::{ any::{Any, TypeId}, collections::HashMap, @@ -2081,7 +2081,9 @@ macro_rules! store { 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 base = self.pop()?; @@ -4822,8 +4824,12 @@ impl<'this, M: ModuleContext> Context<'this, M> { do_div(self, &mut divisor)?; self.free_value(divisor)?; - assert!(!self.block_state.regs.is_free(RAX)); - assert!(!self.block_state.regs.is_free(RDX)); + if self.block_state.regs.is_free(RAX) { + 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)) }