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

Method fill

crates/tinywasm/src/store/memory/mod.rs:74–89  ·  view source on GitHub ↗

Fills the range `[addr, addr + len)` with `val`.

(&mut self, addr: usize, len: usize, val: u8)

Source from the content-addressed store, hash-verified

72
73 /// Fills the range `[addr, addr + len)` with `val`.
74 fn fill(&mut self, addr: usize, len: usize, val: u8) -> Option<()> {
75 let end = addr.checked_add(len)?;
76 if end > self.len() {
77 return None;
78 }
79
80 let mut offset = 0;
81 while offset < len {
82 let chunk_len = min(len - offset, 1024);
83 let chunk = vec![val; chunk_len];
84 self.write_all(addr + offset, &chunk)?;
85 offset += chunk_len;
86 }
87
88 Some(())
89 }
90
91 /// Copies `len` bytes from `src` to `dst` within the same memory.
92 fn copy_within(&mut self, dst: usize, src: usize, len: usize) -> Option<()> {

Callers 1

memory_copy_within_worksFunction · 0.45

Implementers 3

vec.rscrates/tinywasm/src/store/memory/vec.r
paged.rscrates/tinywasm/src/store/memory/paged
lazy.rscrates/tinywasm/src/store/memory/lazy.

Calls 2

lenMethod · 0.45
write_allMethod · 0.45

Tested by 1

memory_copy_within_worksFunction · 0.36