MCPcopy Create free account
hub / github.com/explodingcamera/tinywasm / write_32

Method write_32

crates/tinywasm/src/store/memory/paged.rs:379–392  ·  view source on GitHub ↗
(&mut self, base: u64, offset: u64, bytes: [u8; 4])

Source from the content-addressed store, hash-verified

377
378 #[inline(always)]
379 fn write_32(&mut self, base: u64, offset: u64, bytes: [u8; 4]) -> core::result::Result<(), crate::Trap> {
380 let addr = checked_effective_addr::<4>(self.len, base, offset)?;
381 let chunk_idx = addr >> self.chunk_shift;
382 let chunk_offset = addr & self.chunk_mask;
383 if chunk_offset + 4 <= self.chunk_size {
384 self.chunk_mut(chunk_idx)?[chunk_offset..chunk_offset + 4].copy_from_slice(&bytes);
385 } else {
386 if self.write_all(addr, &bytes).is_none() {
387 cold_path();
388 return Err(crate::Trap::OutOfMemory);
389 }
390 }
391 Ok(())
392 }
393
394 #[inline(always)]
395 fn write_64(&mut self, base: u64, offset: u64, bytes: [u8; 8]) -> core::result::Result<(), crate::Trap> {

Callers

nothing calls this directly

Calls 3

chunk_mutMethod · 0.80
copy_from_sliceMethod · 0.45
write_allMethod · 0.45

Tested by

no test coverage detected