mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-09 06:08:29 +00:00
Fixed wasmer-js
This commit is contained in:
@@ -86,13 +86,6 @@ impl<T: Copy, Ty> WasmPtr<T, Ty> {
|
||||
}
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn align_pointer(ptr: usize, align: usize) -> usize {
|
||||
// clears bits below aligment amount (assumes power of 2) to align pointer
|
||||
debug_assert!(align.count_ones() == 1);
|
||||
ptr & !(align - 1)
|
||||
}
|
||||
|
||||
/// Methods for `WasmPtr`s to data that can be dereferenced, namely to types
|
||||
/// that implement [`ValueType`], meaning that they're valid for all possible
|
||||
/// bit patterns.
|
||||
@@ -109,8 +102,7 @@ impl<T: Copy + ValueType> WasmPtr<T, Item> {
|
||||
if total_len > memory.size().bytes().0 || mem::size_of::<T>() == 0 {
|
||||
return None;
|
||||
}
|
||||
let offset = align_pointer(self.offset as usize, mem::align_of::<T>()) as u32;
|
||||
let subarray = memory.uint8view().subarray(offset, total_len as u32);
|
||||
let subarray = memory.uint8view().subarray(self.offset, total_len as u32);
|
||||
Some(WasmCell::new(subarray))
|
||||
}
|
||||
}
|
||||
@@ -140,14 +132,13 @@ impl<T: Copy + ValueType> WasmPtr<T, Array> {
|
||||
return None;
|
||||
}
|
||||
|
||||
let offset = align_pointer(self.offset as usize, mem::align_of::<T>()) as u32;
|
||||
|
||||
Some(
|
||||
(0..length)
|
||||
.map(|i| {
|
||||
let subarray = memory
|
||||
.uint8view()
|
||||
.subarray(offset + i * item_size, offset + (i + 1) * item_size);
|
||||
let subarray = memory.uint8view().subarray(
|
||||
self.offset + i * item_size,
|
||||
self.offset + (i + 1) * item_size,
|
||||
);
|
||||
WasmCell::new(subarray)
|
||||
})
|
||||
.collect::<Vec<_>>(),
|
||||
|
||||
Reference in New Issue
Block a user