diff options
Diffstat (limited to 'src/interp/interp-inl.h')
-rw-r--r-- | src/interp/interp-inl.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/interp/interp-inl.h b/src/interp/interp-inl.h index f10efaab..e1dcb72d 100644 --- a/src/interp/interp-inl.h +++ b/src/interp/interp-inl.h @@ -652,7 +652,7 @@ Result Memory::Load(u64 offset, u64 addend, T* out) const { if (!IsValidAccess(offset, addend, sizeof(T))) { return Result::Error; } - memcpy(out, data_.data() + offset + addend, sizeof(T)); + wabt::MemcpyEndianAware(out, data_.data(), sizeof(T), data_.size(), 0, offset + addend, sizeof(T)); return Result::Ok; } @@ -660,7 +660,7 @@ template <typename T> T WABT_VECTORCALL Memory::UnsafeLoad(u64 offset, u64 addend) const { assert(IsValidAccess(offset, addend, sizeof(T))); T val; - memcpy(&val, data_.data() + offset + addend, sizeof(T)); + wabt::MemcpyEndianAware(&val, data_.data(), sizeof(T), data_.size(), 0, offset + addend, sizeof(T)); return val; } @@ -669,7 +669,7 @@ Result WABT_VECTORCALL Memory::Store(u64 offset, u64 addend, T val) { if (!IsValidAccess(offset, addend, sizeof(T))) { return Result::Error; } - memcpy(data_.data() + offset + addend, &val, sizeof(T)); + wabt::MemcpyEndianAware(data_.data(), &val, data_.size(), sizeof(T), offset + addend, 0, sizeof(T)); return Result::Ok; } @@ -678,7 +678,7 @@ Result Memory::AtomicLoad(u64 offset, u64 addend, T* out) const { if (!IsValidAtomicAccess(offset, addend, sizeof(T))) { return Result::Error; } - memcpy(out, data_.data() + offset + addend, sizeof(T)); + wabt::MemcpyEndianAware(out, data_.data(), sizeof(T), data_.size(), 0, offset + addend, sizeof(T)); return Result::Ok; } @@ -687,7 +687,7 @@ Result Memory::AtomicStore(u64 offset, u64 addend, T val) { if (!IsValidAtomicAccess(offset, addend, sizeof(T))) { return Result::Error; } - memcpy(data_.data() + offset + addend, &val, sizeof(T)); + wabt::MemcpyEndianAware(data_.data(), &val, data_.size(), sizeof(T), offset + addend, 0, sizeof(T)); return Result::Ok; } |