mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-10 14:48:27 +00:00
Prepare mem_access commons
This commit is contained in:
1
lib/api/src/js/externals/memory_view.rs
vendored
1
lib/api/src/js/externals/memory_view.rs
vendored
@@ -103,6 +103,7 @@ impl<'a> MemoryView<'a> {
|
||||
Bytes(self.size as usize).try_into().unwrap()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn buffer(&self) -> MemoryBuffer<'a> {
|
||||
MemoryBuffer {
|
||||
base: &self.view as *const _ as *mut _,
|
||||
|
||||
@@ -30,12 +30,12 @@ pub enum MemoryAccessError {
|
||||
|
||||
impl From<MemoryAccessError> for RuntimeError {
|
||||
fn from(err: MemoryAccessError) -> Self {
|
||||
RuntimeError::new(err.to_string())
|
||||
Self::new(err.to_string())
|
||||
}
|
||||
}
|
||||
impl From<FromUtf8Error> for MemoryAccessError {
|
||||
fn from(_err: FromUtf8Error) -> Self {
|
||||
MemoryAccessError::NonUtf8String
|
||||
Self::NonUtf8String
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ impl<'a, T: ValueType> WasmSlice<'a, T> {
|
||||
///
|
||||
/// Returns a `MemoryAccessError` if the slice length overflows.
|
||||
#[inline]
|
||||
pub fn new(memory: &'a MemoryView, offset: u64, len: u64) -> Result<Self, MemoryAccessError> {
|
||||
pub fn new(view: &'a MemoryView, offset: u64, len: u64) -> Result<Self, MemoryAccessError> {
|
||||
let total_len = len
|
||||
.checked_mul(mem::size_of::<T>() as u64)
|
||||
.ok_or(MemoryAccessError::Overflow)?;
|
||||
@@ -166,7 +166,7 @@ impl<'a, T: ValueType> WasmSlice<'a, T> {
|
||||
.checked_add(total_len)
|
||||
.ok_or(MemoryAccessError::Overflow)?;
|
||||
Ok(Self {
|
||||
buffer: memory.buffer(),
|
||||
buffer: view.buffer(),
|
||||
offset,
|
||||
len,
|
||||
marker: PhantomData,
|
||||
@@ -197,7 +197,7 @@ impl<'a, T: ValueType> WasmSlice<'a, T> {
|
||||
self.len
|
||||
}
|
||||
|
||||
/// Return if the slice is empty.
|
||||
/// Returns `true` if the number of elements is 0.
|
||||
#[inline]
|
||||
pub fn is_empty(&self) -> bool {
|
||||
self.len == 0
|
||||
@@ -367,7 +367,7 @@ impl<'a, T: ValueType> Iterator for WasmSliceIter<'a, T> {
|
||||
type Item = WasmRef<'a, T>;
|
||||
|
||||
fn next(&mut self) -> Option<Self::Item> {
|
||||
if self.slice.len() != 0 {
|
||||
if !self.slice.is_empty() {
|
||||
let elem = self.slice.index(0);
|
||||
self.slice = self.slice.subslice(1..self.slice.len());
|
||||
Some(elem)
|
||||
@@ -383,7 +383,7 @@ impl<'a, T: ValueType> Iterator for WasmSliceIter<'a, T> {
|
||||
|
||||
impl<'a, T: ValueType> DoubleEndedIterator for WasmSliceIter<'a, T> {
|
||||
fn next_back(&mut self) -> Option<Self::Item> {
|
||||
if self.slice.len() != 0 {
|
||||
if !self.slice.is_empty() {
|
||||
let elem = self.slice.index(self.slice.len() - 1);
|
||||
self.slice = self.slice.subslice(0..self.slice.len() - 1);
|
||||
Some(elem)
|
||||
|
||||
1
lib/api/src/sys/externals/memory_view.rs
vendored
1
lib/api/src/sys/externals/memory_view.rs
vendored
@@ -96,6 +96,7 @@ impl<'a> MemoryView<'a> {
|
||||
self.size
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn buffer(&'a self) -> MemoryBuffer<'a> {
|
||||
self.buffer
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ impl<'a, T: ValueType> WasmRef<'a, T> {
|
||||
#[inline]
|
||||
pub fn new(view: &'a MemoryView, offset: u64) -> Self {
|
||||
Self {
|
||||
buffer: view.buffer,
|
||||
buffer: view.buffer(),
|
||||
offset,
|
||||
marker: PhantomData,
|
||||
}
|
||||
@@ -201,7 +201,7 @@ impl<'a, T: ValueType> WasmSlice<'a, T> {
|
||||
|
||||
/// Returns `true` if the number of elements is 0.
|
||||
#[inline]
|
||||
pub fn is_empty(self) -> bool {
|
||||
pub fn is_empty(&self) -> bool {
|
||||
self.len == 0
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user