Skip to content

Commit

Permalink
Replace wasmparser::Result with wasmer::WasmResult in middleware
Browse files Browse the repository at this point in the history
  • Loading branch information
webmaster128 committed Dec 22, 2020
1 parent 0b97962 commit 3a06e3e
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 16 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
* [#1955](https://github.com/wasmerio/wasmer/pull/1955) Set `jit` as a default feature of the `wasmer-wasm-c-api` crate
* [#1944](https://github.com/wasmerio/wasmer/pull/1944) Require `WasmerEnv` to be `Send + Sync` even in dynamic functions.
* [#1963](https://github.com/wasmerio/wasmer/pull/1963) Removed `to_wasm_error` in favour of `impl From<BinaryReaderError> for WasmError`
* [#1962](https://github.com/wasmerio/wasmer/pull/1962) Replace `wasmparser::Result` with `wasmer::WasmResult` in middleware

### Fixed

Expand Down
2 changes: 1 addition & 1 deletion lib/api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ pub use wasmer_compiler::{
wasmparser, CompilerConfig, FunctionMiddleware, MiddlewareReaderState, ModuleMiddleware,
};
pub use wasmer_compiler::{
CompileError, CpuFeature, Features, ParseCpuFeatureError, Target, WasmError,
CompileError, CpuFeature, Features, ParseCpuFeatureError, Target, WasmError, WasmResult,
};
pub use wasmer_engine::{
ChainableNamedResolver, DeserializeError, Engine, Export, FrameInfo, LinkError, NamedResolver,
Expand Down
16 changes: 9 additions & 7 deletions lib/compiler/src/translator/middleware.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ use std::fmt::Debug;
use std::ops::Deref;
use wasmer_types::LocalFunctionIndex;
use wasmer_vm::ModuleInfo;
use wasmparser::{BinaryReader, Operator, Result as WpResult, Type};
use wasmparser::{BinaryReader, Operator, Type};

use crate::error::WasmResult;

/// A shared builder for function middlewares.
pub trait ModuleMiddleware: Debug + Send + Sync {
Expand All @@ -32,7 +34,7 @@ pub trait FunctionMiddleware: Debug {
&mut self,
operator: Operator<'a>,
state: &mut MiddlewareReaderState<'a>,
) -> WpResult<()> {
) -> WasmResult<()> {
state.push_operator(operator);
Ok(())
}
Expand Down Expand Up @@ -127,22 +129,22 @@ impl<'a> MiddlewareBinaryReader<'a> {
}

/// Read a `count` indicating the number of times to call `read_local_decl`.
pub fn read_local_count(&mut self) -> WpResult<u32> {
self.state.inner.read_var_u32()
pub fn read_local_count(&mut self) -> WasmResult<u32> {
Ok(self.state.inner.read_var_u32()?)
}

/// Read a `(count, value_type)` declaration of local variables of the same type.
pub fn read_local_decl(&mut self) -> WpResult<(u32, Type)> {
pub fn read_local_decl(&mut self) -> WasmResult<(u32, Type)> {
let count = self.state.inner.read_var_u32()?;
let ty = self.state.inner.read_type()?;
Ok((count, ty))
}

/// Reads the next available `Operator`.
pub fn read_operator(&mut self) -> WpResult<Operator<'a>> {
pub fn read_operator(&mut self) -> WasmResult<Operator<'a>> {
if self.chain.is_empty() {
// We short-circuit in case no chain is used
return self.state.inner.read_operator();
return Ok(self.state.inner.read_operator()?);
}

// Try to fill the `self.pending_operations` buffer, until it is non-empty.
Expand Down
8 changes: 3 additions & 5 deletions lib/middlewares/src/metering.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@
use std::convert::TryInto;
use std::fmt;
use std::sync::Mutex;
use wasmer::wasmparser::{
Operator, Result as WpResult, Type as WpType, TypeOrFuncType as WpTypeOrFuncType,
};
use wasmer::wasmparser::{Operator, Type as WpType, TypeOrFuncType as WpTypeOrFuncType};
use wasmer::{
ExportIndex, FunctionMiddleware, GlobalInit, GlobalType, Instance, LocalFunctionIndex,
MiddlewareReaderState, ModuleMiddleware, Mutability, Type,
MiddlewareReaderState, ModuleMiddleware, Mutability, Type, WasmResult,
};
use wasmer_types::GlobalIndex;
use wasmer_vm::ModuleInfo;
Expand Down Expand Up @@ -118,7 +116,7 @@ impl<F: Fn(&Operator) -> u64 + Copy + Clone + Send + Sync> FunctionMiddleware
&mut self,
operator: Operator<'a>,
state: &mut MiddlewareReaderState<'a>,
) -> WpResult<()> {
) -> WasmResult<()> {
// Get the cost of the current operator, and add it to the accumulator.
// This needs to be done before the metering logic, to prevent operators like `Call` from escaping metering in some
// corner cases.
Expand Down
6 changes: 3 additions & 3 deletions tests/compilers/middlewares.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::utils::get_store_with_middlewares;
use anyhow::Result;

use std::sync::Arc;
use wasmer::wasmparser::{Operator, Result as WpResult};
use wasmer::wasmparser::Operator;
use wasmer::*;

#[derive(Debug)]
Expand All @@ -28,7 +28,7 @@ impl FunctionMiddleware for Add2Mul {
&mut self,
operator: Operator<'a>,
state: &mut MiddlewareReaderState<'a>,
) -> WpResult<()> {
) -> WasmResult<()> {
match operator {
Operator::I32Add => {
state.push_operator(Operator::I32Mul);
Expand Down Expand Up @@ -66,7 +66,7 @@ impl FunctionMiddleware for Fusion {
&mut self,
operator: Operator<'a>,
state: &mut MiddlewareReaderState<'a>,
) -> WpResult<()> {
) -> WasmResult<()> {
match (operator, self.state) {
(Operator::I32Add, 0) => {
self.state = 1;
Expand Down

0 comments on commit 3a06e3e

Please sign in to comment.