mirror of
https://github.com/fluencelabs/parity-wasm
synced 2025-06-14 23:41:43 +00:00
Cleaning
This commit is contained in:
@ -1,5 +1,4 @@
|
|||||||
use std::u32;
|
use std::u32;
|
||||||
use std::sync::Arc;
|
|
||||||
use std::ops::Range;
|
use std::ops::Range;
|
||||||
use std::cmp;
|
use std::cmp;
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
|
@ -1,14 +1,6 @@
|
|||||||
use elements::{InitExpr, Opcode, Type, FunctionType, Internal, External, ResizableLimits, Local, ValueType, BlockType};
|
use elements::ResizableLimits;
|
||||||
use interpreter::Error;
|
use interpreter::Error;
|
||||||
use interpreter::runner::{FunctionContext};
|
|
||||||
use interpreter::VariableType;
|
use interpreter::VariableType;
|
||||||
use interpreter::RuntimeValue;
|
|
||||||
use common::stack::StackWithLimit;
|
|
||||||
|
|
||||||
/// Maximum number of entries in value stack.
|
|
||||||
const DEFAULT_VALUE_STACK_LIMIT: usize = 16384;
|
|
||||||
/// Maximum number of entries in frame stack.
|
|
||||||
const DEFAULT_FRAME_STACK_LIMIT: usize = 1024;
|
|
||||||
|
|
||||||
/// Execution context.
|
/// Execution context.
|
||||||
pub struct ExecutionParams<'a, St: 'static> {
|
pub struct ExecutionParams<'a, St: 'static> {
|
||||||
@ -36,36 +28,6 @@ pub enum ItemIndex {
|
|||||||
External(u32),
|
External(u32),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Caller context.
|
|
||||||
pub struct CallerContext<'a> {
|
|
||||||
/// Value stack limit
|
|
||||||
pub value_stack_limit: usize,
|
|
||||||
/// Frame stack limit
|
|
||||||
pub frame_stack_limit: usize,
|
|
||||||
/// Stack of the input parameters
|
|
||||||
pub value_stack: &'a mut StackWithLimit<RuntimeValue>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> CallerContext<'a> {
|
|
||||||
/// Top most args
|
|
||||||
pub fn topmost(args: &'a mut StackWithLimit<RuntimeValue>) -> Self {
|
|
||||||
CallerContext {
|
|
||||||
value_stack_limit: DEFAULT_VALUE_STACK_LIMIT,
|
|
||||||
frame_stack_limit: DEFAULT_FRAME_STACK_LIMIT,
|
|
||||||
value_stack: args,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Nested context
|
|
||||||
pub fn nested(outer: &'a mut FunctionContext) -> Self {
|
|
||||||
CallerContext {
|
|
||||||
value_stack_limit: outer.value_stack().limit() - outer.value_stack().len(),
|
|
||||||
frame_stack_limit: outer.frame_stack().limit() - outer.frame_stack().len(),
|
|
||||||
value_stack: &mut outer.value_stack,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn check_limits(limits: &ResizableLimits) -> Result<(), Error> {
|
pub fn check_limits(limits: &ResizableLimits) -> Result<(), Error> {
|
||||||
if let Some(maximum) = limits.maximum() {
|
if let Some(maximum) = limits.maximum() {
|
||||||
if maximum < limits.initial() {
|
if maximum < limits.initial() {
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use elements::Module;
|
use elements::Module;
|
||||||
use interpreter::Error;
|
use interpreter::Error;
|
||||||
use interpreter::module::{ExecutionParams};
|
|
||||||
use interpreter::store::{Store, ModuleId};
|
use interpreter::store::{Store, ModuleId};
|
||||||
use interpreter::host::HostModuleBuilder;
|
use interpreter::host::HostModuleBuilder;
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ops;
|
use std::ops;
|
||||||
use std::sync::Arc;
|
|
||||||
use std::{u32, usize};
|
use std::{u32, usize};
|
||||||
use std::fmt::{self, Display};
|
use std::fmt::{self, Display};
|
||||||
use std::iter::repeat;
|
use std::iter::repeat;
|
||||||
@ -8,7 +7,6 @@ use std::collections::{HashMap, VecDeque};
|
|||||||
use elements::{Opcode, BlockType, Local, FunctionType};
|
use elements::{Opcode, BlockType, Local, FunctionType};
|
||||||
use interpreter::Error;
|
use interpreter::Error;
|
||||||
use interpreter::store::{Store, FuncId, ModuleId, FuncInstance};
|
use interpreter::store::{Store, FuncId, ModuleId, FuncInstance};
|
||||||
use interpreter::module::{CallerContext, ExecutionParams};
|
|
||||||
use interpreter::value::{
|
use interpreter::value::{
|
||||||
RuntimeValue, TryInto, WrapInto, TryTruncateInto, ExtendInto,
|
RuntimeValue, TryInto, WrapInto, TryTruncateInto, ExtendInto,
|
||||||
ArithmeticOps, Integer, Float, LittleEndianConvert, TransmuteInto,
|
ArithmeticOps, Integer, Float, LittleEndianConvert, TransmuteInto,
|
||||||
|
@ -3,8 +3,7 @@ use parking_lot::RwLock;
|
|||||||
use elements::{TableType, ResizableLimits};
|
use elements::{TableType, ResizableLimits};
|
||||||
use interpreter::Error;
|
use interpreter::Error;
|
||||||
use interpreter::module::check_limits;
|
use interpreter::module::check_limits;
|
||||||
use interpreter::variable::{VariableInstance, VariableType};
|
use interpreter::variable::VariableType;
|
||||||
use interpreter::value::RuntimeValue;
|
|
||||||
use interpreter::store::FuncId;
|
use interpreter::store::FuncId;
|
||||||
|
|
||||||
/// Table instance.
|
/// Table instance.
|
||||||
@ -16,11 +15,6 @@ pub struct TableInstance {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Table element. Cloneable wrapper around VariableInstance.
|
|
||||||
struct TableElement {
|
|
||||||
pub var: VariableInstance,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TableInstance {
|
impl TableInstance {
|
||||||
/// New instance of the table
|
/// New instance of the table
|
||||||
pub fn new(table_type: &TableType) -> Result<Self, Error> {
|
pub fn new(table_type: &TableType) -> Result<Self, Error> {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use elements::{GlobalType, ValueType, TableElementType};
|
use elements::{GlobalType, ValueType};
|
||||||
use interpreter::Error;
|
use interpreter::Error;
|
||||||
use interpreter::value::RuntimeValue;
|
use interpreter::value::RuntimeValue;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user